まあ、私は見つけられる限りのことをすべて試したようですが(それほど多くはありませんが)、なぜデータベースへのリモート接続ができないのか理解できません。
私が持っているものは次のとおりです:
#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 を入力します)。