14

重複として返信する前に読んでください (発生する可能性があるため)。ポストマスター (postgres) サーバーを実行しています。「sudo netstat -anp|grep 5432」の出力については、以下を参照してください。

tcp  0  0 127.0.0.1:5432    0.0.0.0:*     LISTEN      29606/postmaster       
unix  2      [ ACC ]     STREAM     LISTENING     1650581 29606/postmaster /var/run/postgresql/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     1650582 29606/postmaster    /tmp/.s.PGSQL.5432               

を使用してローカルホストから接続できます

psql -h localhost (OR 127.0.0.1) -d <DB> -U user -W

しかし、指定して、tcpを使用して他のホストから接続しようとすると、

psql -h ip_add_postmaster -d <DB> -U user -W

それはスローします:

psql: サーバーに接続できませんでした: 接続が拒否されました サーバーはホスト XXXXXX で実行されており、ポート 5432 で TCP/IP 接続を受け入れていますか?

ここで何が問題なのですか?

pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only                  
local   all             all                                     peer  
# IPv4 local connections:                                             
host    all             all             127.0.0.1/32            md5   
# IPv6 local connections:                                             
host    all             all             ::1/128                 md5   

postgresql.conf で、

listen_addresses = 'localhost, 127.0.0.1, ip_add_postmaster'

Note: ip_add_postmaster is same as my Elastic IP and not public DNS. If this information
matters.

ここで何が間違っていますか?マシンは Amazon EC2 でホストされており、ポート 5432 を開いています。

4

5 に答える 5

4

listen_addresses='localhost, private_ip' で問題が解決しました。エラスティック IP で postmaster サーバーを起動できませんでした。postgres サーバーがローカルホストとプライベート IP で起動すると、接続できました。

于 2013-11-13T19:50:48.920 に答える
4

私が見つけたもう 1 つの問題は、Postgres を 2 つインストールした場合、2 つ目のポートがデフォルト以外のポートを選択できることです (私の場合は 5433 i/o 5432 でした)。そのため、postgresql.conf でポートを確認することをお勧めします。

于 2015-08-10T08:49:58.260 に答える