web-dev-qa-db-ja.com

pgAdminがPostgreSQL 9.1に接続できない

WindowsでpgAdminを使用して、localhostのUbuntu 12.04 VMで実行されているpostgresql 9.1.8に接続しようとしています。ホストのポート5432はVMのポート5432に転送します。

pgAdminエラー:

Error connecting to the server: could not receive data from server: Software caused connection abortion (0x00002745/10053)

postgresql.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
port = 5432 

pg_hba.conf

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

Host    all             all             0.0.0.0/0               md5
Host    all             all             127.0.0.1/32            md5
Host    all             all             ::1/128                 md5 

netstat -nlp | 5432

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      29035/postgres
unix  2      [ ACC ]     STREAM     LISTENING     50823    29035/postgres      /var/run/postgresql/.s.PGSQL.5432

iptablesルール

iptables -I INPUT -p tcp --dport 5432 -j ACCEPT

PostgreSQLサービスが再起動されましたが、pgAdminはまだエラーを出します。それを引き起こしているアイデアはありますか?

5
Nyxynyx

同じ問題があり、3つのステップに要約されました。

1- Mavericks(10.6+と同じ)では、ポート5432がすでに使用されているため、これが必要です。--- config.vm.network "forwarded_port"、guest:5432、Host:5433 'on' Vagrantfile 'そして、ポート5433を使用してpgadmin3経由で接続する

2- listen_address = '*'#postgresql.confで、サーバーがすべてのIPからのソケット接続としてリッスンできるようにします

3-「pg_hba.conf」でホストを有効にする必要があります

Postgresqlに必要なプロビジョニングシェルスクリプトをvagrantに配置します。

https://Gist.github.com/haknick/7394776

1
haknick

TCPパケットはINが許可されていますが、VMからホストへのOUTは許可されていますか?

INPUTルールが必要な場合は、おそらく次のようなOUTPUTルールも必要になります。

iptables -I OUTPUT -p tcp --sport 5432 -m state --state ESTABLISHED -j ACCEPT

また、次の関連質問もご覧ください。 Vagrant BoxでPostgresに接続できません-接続が拒否されました

0
Daniel Vérité