postgresql 再起動 リモートホストからのpostgresに接続できません



postgresql リモート接続 linux (4)

私はpostgresを実行しているデータベースサーバ(192.168.1.50)があります。 "testdb"という名前のデータベースと "testuserpw"というパスワードを持つ "testuser"というユーザーを作成しました。
ローカルでは、以下を使用してdbに接続できます。

psql -d testdb -U testuser

別のホスト(192.168.1.60)からコマンドを発行すると、次のようになります。

psql -h 192.168.1.50 -d testdb -U testuser

私はエラーがあります:

psql: could not connect to server: Connection refused
Is the server running on host "192.168.1.50" and accepting
TCP/IP connections on port 5432?

何か案が ?


Answer #1

postgresql.confファイルのlisten_addressesの設定を確認してください。 多くのディストリビューションではデフォルトの127.0.0.1になります。つまり、localhostからの接続のみをlistenします。 すべてのインタフェースで接続をリッスンするには、 '*'に設定する必要があります。

それでも問題が解決しない場合は、 lsofを使用して、ポストグルプロセスがどのネットワークソケットをリッスンしているかを確認してください。


Answer #2

ファイアウォールは接続を通過させますか? または、 pg_hba.confがlocalhost以外のアドレスからの接続を許可しているかどうかを確認してください。


Answer #3

Ubuntuでは、ある時点でリモートアクセスが機能しなくなったことに気付きました(現在は9.1.9を使用しています)。 その理由は、postgresは-i switch [1]で始まっていないので、listen_addressに何を設定しても無視されます。

幸いにも、 /etc/environment次の行を追加すると、ログアウトしてからもう一度(またはリブートして)問題が解決され/etc/environment

PGOPTIONS="-i"

その他のオプションについては、[2]を参照してください。 これを/etc/postgresql/9.1/main/environment追加すると、私にとってはうまく/etc/postgresql/9.1/main/environmentませんでした。

さて、 nmap ip-of-my-remote-servernmap ip-of-my-remote-serverとき、私はついにこれをもう一度入手しnmap ip-of-my-remote-server

5432/tcp open  postgresql

わーい!

[1] http://www.postgresql.org/docs/9.1/static/runtime-config-short.html

[2] http://www.postgresql.org/docs/9.1/static/libpq-envars.html


Answer #4

postgresql.confのlisten_address configvarは、非ローカルIPアドレス(またはアドレス)でlistenするための唯一の方法ではありません。

pg_ctlからpostgresを起動する場合は、 "-o -h *"オプションを使用します。そうでない場合、postgresコマンドラインに "-h" "*"を追加します。

/ usr / local / pgsql / bin / postgres -D / pg / data "-h" "*"

もちろん、/ pg / dataは現在のデータパスに変更する必要があります。

これは実験の際に特に便利です。





postgresql