リモート postgres 接続

リモート postgres 接続

まあ、私は見つけられる限りのことをすべて試したようですが(それほど多くはありませんが)、なぜデータベースへのリモート接続ができないのか理解できません。

私が持っているものは次のとおりです:

#postgresql.conf
listen_addresses = '12.34.56.78,localhost' # included my local ip
port = 5432                                # the port I'm trying to connect with
tcpip_socket = true                        

#pg_hba.conf
host    all         mydbuser       12.34.56.78/32         md5

I receive: connection to database 'name' failed, could not connect to server: Connection refused.
 Is the server running on host "domain.com" and accepting
 TCP/IP connections on port 5432?

netstat -ant | grep 5432 #returns nothing 

netstat -nltp | grep 5432: 何も返さない

解決

実のところ、私がこのことを理解できなかったのは、このテーマに関するブログ記事の書き方が悪かったからだと思います。一方で、スライスホスト私にとっては問題が解決しました。同じ問題を抱えてここに来る人がいたら、ぜひ読んでみてください。Slicehost のチュートリアルの質とメンテナンスは本当に賞賛に値しますが、人々がサービスを利用できるように支援するのは良いビジネスだと思います。

回答していただいた皆様ありがとうございました。

答え1

db サーバーで以下を実行し、出力を投稿してください。

  • ps axf | grep postgres
  • リスニングポートnetstat -nltp | grep 5432

ファイアウォールを回避するには、ポート 5432 ではなくポート 80 または 8080 を使用してください。

12.34.56.78/32 から接続していますか (これは pg_hba.conf で許可されている範囲です)?

12.34.56.78 に ping できますか?

空の出力からnetstat、postgres プロセスがポートをリッスンしていないように見えます。

データベースを再起動すると、/var/log/postgresql/ に何か興味深いものが表示されますか。

答え2

ファイアウォールを確認しましたか?そのポートへのアクセスを禁止するルールがある可能性があります

答え3

ホストすべて mydbuser 12.34.56.78/32 md5

pg_hba.conf のこの行は、ホスト 12.34.56.78 のユーザー mydbuser だけが接続できることを意味します。

したがって、これが PG サーバーの場合は、ホストまたはサブネット用に別の行を追加する必要があります (つまり、12.34.45.01-254 のいずれかに接続する場合は、12.34.56.00/24 を入力します)。

関連情報