PR
※本ブログには広告が含まれています。

【PostgreSQL】 「pgAdmin 4」が起動しない? 現象・原因・対策 トップ5!

はじめに

Windows 11環境で「pgAdmin 4が起動しない」不具合について、その現象の具体例と、原因・対策を紹介します。

動作環境

  • Windows 11 Pro 24H2
  • PostgreSQL 17.6
  • pgAdmin 4 :Ver. 9.6 Python Ver. 3.13.6

第1位 「The pgAdmin 4 server could not be contacted」エラー

pgAdmin 4 起動時の現象

起動時にブラウザが開くが、上記エラー「The pgAdmin 4 server could not be contacted」が表示されて操作不能となる

原因

セッションファイルの破損、または前回の異常終了

対策

以下のようにRoamingフォルダ内の「pgAdmin」フォルダを削除する

Remove-Item "$env:APPDATA\pgAdmin" -Recurse -Force

又は、手動で削除

C:\Users\ユーザー名\AppData\Roaming\pgAdmin

再起動後、正常に起動するかどうかを確認する。

第2位 PostgreSQLサービスが停止している

pgAdmin 4 起動時の現象

pgAdminは起動するが、データベースに接続できない

原因

PostgreSQLサービスに異常があるため、pgAdminがサービスに接続できない。

対策

PostgreSQLサービスの存在とその状態(起動中か停止中)を確認する

確認方法(例)

# PostgreSQLサービスの存在と状態を確認
Get-Service | Where-Object { $_.Name -like "postgresql*" }

出力例

  • サービスは存在しているが、起動していない場合
Status   Name               DisplayName
------   ----               -----------
Stopped  postgresql-x64-17  PostgreSQL 17

サービスが存在しない場合は、何も表示されません。

サービスが起動していない場合

サービスを起動する。
起動例:サービス名はPostgreSQLのバージョンによって異なるので注意

Start-Service -Name "postgresql-x64-17"

PostgreSQLが未インストールの場合

下記のコマンドでインストールするか、公式ダウンロードサイトからインストーラーをダウンロードしてインストールする。

New-Service -Name "postgresql-x64-17" -BinaryPathName "C:\Program Files\PostgreSQL\bin\pg_ctl.exe runservice" -DisplayName "PostgreSQL 17" -StartupType Automatic

サービス登録が失敗している場合

以下のようにサービスを登録する(パスは環境に応じて調整)

New-Service -Name "postgresql-x64-17" -BinaryPathName "C:\Program Files\PostgreSQL\bin\pg_ctl.exe runservice" -DisplayName "PostgreSQL 17" -StartupType Automatic

第3位 プロキシ設定がlocalost通信を妨害している

pgAdmin 4 起動時の現象

  • ブラウザは開くが「The pgAdmin 4 server could not be contacted」と表示される
  • 真っ白な画面のまま何も表示されない

原因

Windowsのプロキシ設定がlocalhost通信を外部に転送しようとして失敗する。

pgAdmin 4は、起動時にローカルHTTPサーバー(通常 http://127.0.0.1:5050)を立ち上げてUIを表示します。
しかし、Windowsのプロキシ設定が有効になっていると、localhostへの通信がプロキシ経由になり、pgAdminのローカルサーバーに接続できなくなることがあります。

  • この問題が起こり易い環境
    • VPN接続中
    • 企業ネットワークでグローバルプロキシが強制されている
    • Windowsの「自動プロキシ検出」が有効になっている

対策

localhost通信をプロキシから除外する

  • 環境変数 NO_PROXY を設定する(推奨)
    pgAdminの起動時にこの環境変数が設定されていれば、localhost通信がプロキシを経由せず直接処理されます

PowerShellで設定(ユーザー環境変数:pgAdmin 4 再起動必要)

[System.Environment]::SetEnvironmentVariable("NO_PROXY", "127.0.0.1,localhost", "User")

コマンドプロンプトで設定(永続化::pgAdmin 4 再起動必要)

setx NO_PROXY "127.0.0.1,localhost"

第4位 管理者権限で起動していない

pgAdmin 4 起動時の現象

起動はするが、設定変更や接続が反映されない。

原因

pgAdminは一部の操作に管理者権限が必要。

対策

ショートカットを右クリック → 「管理者として実行」。

  • 常に管理者として実行する方法
    • ショートカットの「プロパティ」
    • 「互換性」タブ
    • 「管理者としてこのプログラムを実行」にチェック
pgAdmin 4 プロパティ、「管理者としてこのプログラムを実行する」設定画面

第5位 pgAdminのバージョンが古い

pgAdmin 4 起動時の現象

Windows 11で起動しない、またはUIが崩れる。

原因

古いバージョンでは互換性に問題がある。

対策

最新版のpgAdmin 4をインストールする。

winget install --id=pgAdmin.pgAdmin4

コマンドの実行で「入力条件に一致するパッケージが見つかりませんでした」が表示される場合

  • 原因1
    リポジトリが不足している

リポジトリの確認とリセット。Powershellで以下のコマンドを実行

winget source list

winget と msstore の両方が表示されない場合は、以下のコマンドでリセットし、再度「winget source list」コマンドで確認。

winget source reset --force

筆者の場合は、「winget と msstore 」の両方が入ってました。

winget source list コマンドの実行結果 画像
  • 原因2
    IDが誤っているか登録されていない。pgAdmin.pgAdmin4というIDが現在のwingetリポジトリに存在しない可能性があるので、正しいIDを以下のコマンドで検索します。
winget search pgAdmin

筆者の環境では、正しいIDは「PostgreSQL.pgAdmin」でした。

winget search pgAdmin コマンドの実行結果 画像

正しいIDが分かったので、以下のコマンドでインストールします。

winget install --id=PostgreSQL.pgAdmin
winget install --id=PostgreSQL.pgAdmin コマンドの実行結果 画像

インストール中は、下記のプログレスバーが表示されます。

インストール中のプログレスバー 画像

まとめ

pgAdmin 4の起動トラブルは「環境ファイル」「サービス」「権限」「プロキシ設定」等、多岐にわたります。特にプロキシがlocalhost通信を妨害するケースでは、環境変数 NO_PROXY の設定やWindowsのプロキシ除外設定が有効です。ログファイルやポート状態を確認しながら、再現性のある手順で対処することで、初心者でも安定した起動環境を構築できます。

タイトルとURLをコピーしました