1. ホーム
  2. postgresql

[解決済み] Postgresql : 接続が拒否されました。ホスト名とポートが正しいか、postmaster が TCP/IP 接続を受け入れているかを確認してください [重複]。

2023-04-06 22:26:19

質問

postgresqlに接続しようとしているのですが、このエラーが発生します。

org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

私のpg_hba.confファイルはこのようなものです。

 TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

もし誰かが親切にもここで何が起こっているのか、そしてどのように修正すべきかを説明してくれるなら、私は大いに感謝します。

どのように解決するのですか?

あなたが引用したエラーは pg_hba.conf 接続に失敗しているのであって、接続の認証に失敗しているのではありません。

エラーメッセージに書かれていることを実行してください。

ホスト名とポートが正しいか、postmasterがTCP/IP接続を受け入れているかを確認します。

エラーが発生するコマンドが表示されていません。もし、あなたが localhost ポート 5432 (標準的なPostgreSQLのインストールのデフォルト)のどちらかを指定します。

  • PostgreSQL が稼働していない

  • PostgreSQL は TCP/IP 接続をリスンしていません ( listen_addressespostgresql.conf )

  • PostgreSQL は IPv4 でのみリスンしています ( 0.0.0.0 または 127.0.0.1 ) で、IPv6 で接続している場合 ( ::1 ) で接続している場合、またはその逆の場合です。これは、IPv6 ソケットの動作が奇妙な一部の古い Mac OS X バージョンや、一部の古い Windows バージョンにおける問題であるようです。

  • PostgreSQL が接続中のポートとは異なるポートで待ち受けしています。

  • (可能性は低いですが) iptables ルールがループバック接続をブロックしている

(もし、あなたが ではない で接続している場合 localhost に接続できない場合、ネットワークファイアウォールが TCP/IP 接続をブロックしている可能性もありますが、何も言われなかったのでデフォルトを使用していると思われます)。

だから......それらをチェックしてください。

  • ps -f -u postgres はリストする必要があります postgres プロセス

  • sudo lsof -n -u postgres |grep LISTEN または sudo netstat -ltnp | grep postgres は、PostgreSQLがリッスンしているTCP/IPアドレスとポートを表示します。

ところで、あなたは古いバージョンを使用しているのではないでしょうか。私の 9.3 インストールでは、エラーはむしろより詳細です。

$ psql -h localhost -p 12345
psql: could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 12345?