クライアント(Macbook Pro)を使用して、同じネットワーク(Ubuntu)の別のPCにあるPostgresデータベースに接続しようとしています。pgAdminを使用してホストからデータベースを表示できますが、localhostに接続できません。クライアント。
pg_hba.conf
とpostgresql.conf
のすべての接続を許可しました
クライアントからpgAdminを介して、データベースが格納されているIPサーバー(192.168.1.34)とポート5432に接続しようとしています
そして私はこのエラーを受け取ります 何が悪いのですか?
私は何かを逃していますか
提案を読んだ後、私は言うことができます:ubuntuマシン(ホームテストサーバー)にはファイアウォールがありません。 Postgresが実行されています。
私はubuntuコンソールからデータベースにアクセスしようとしました:psql -h 127.0.0.1 mydatabase postgres
と接続できます(つまり、サーバーは実行中でユーザー名は大丈夫です)同じマシンから同じデータベースにアクセスしようとすると、 localhostをIPで変更すると、接続できません。サーバーから接続するときにpsql -h 127.0.0.1 mydatabase postgres
がpsql -h 192.168.1.34 mydatabase postgres
と同じであってはなりませんか?
多分アランが示唆したように、ループバックの中にいるのですか
接続していないため、適切なインターフェイスでリッスンしていないか、ファイアウォールによってブロックされている可能性があります。
Postgresは稼働していますか?
Sudo service postgresql status
Postgresは、LAN IPまたは0.0.0.0(すべてのインターフェース)上のtcp/5432をリッスンしていますか?
netstat -anpt | grep LISTEN
127.0.0.1(ループバック)のみをリッスンしている可能性があります。つまり、Macから到達できません。
待機していないか、ループバックしている場合は、postgresql.confでlisten_addressesを確認します。
http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html
Ubuntuボックスで実行されているファイアウォールはありますか?
MacのIPからtcp/5432へのインバウンド接続を最低限許可するようにしてください。
GUFWを使用すると、これを簡単に構成できますが、iptablesでも実行できます。
Ubuntuセットアップの詳細リファレンス:
次の2つのファイルを構成している可能性があります
pg_hba.conf:
Host all all 0.0.0.0/0 md5
postgresql.conf
listen_addresses='*'
ポート5432が開いているかどうかを確認する必要があります: http://www.yougetsignal.com/tools/open-ports/
そうでない場合は、iptablesにルールを追加します。
iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT
0/0:誰かにアクセスしてもらいたい場合。
特定のIPアドレスまたはIPアドレスの範囲に変更できます。
Postgresqlが外部ネットワークからのリクエストを受け入れることを許可している。そのためには、/etc/postgresql/{version_code}/main
にある2つのファイルを変更する必要があります。最初のファイルはpg_hba.conf
で、開いて
Host all all ::1/128 md5
をHost all all 0.0.0.0/0 md5
に変更
2つ目はpostgresql.conf
で、オープンで
listen_address = 'localhost'
をlisten_address = '*'
に変更
次に、postgreサーバーを再起動します。
Ubuntu 17.04では、デフォルトポートは5433で、パス/etc/postgresql/9.6/mainにあるファイルpostgresql.confをチェックします。