リモートのPSQLデータベースに接続しようとしています。クライアントのIPアドレスを含むpg_hba.confエントリを追加する前に、エラーメッセージが表示されました。
xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47
psql: FATAL: no pg_hba.conf entry for Host "10.201.50.71", user "postgres", database "testdb", SSL off
信頼設定でクライアントのIPを追加しました。また、サーバーのpostgres.confのリッスンアドレスを変更して「*」をリッスンしました。次に、/ etc/init.d/postgresql restartコマンドを使用してデータベースサーバーを再起動しました。
接続しようとすると、次のエラーメッセージが表示されます。
psql: could not connect to server: Connection refused
Is the server running on Host "10.1.1.47" and accepting
TCP/IP connections on port 5432?
postgresql.confでは、ポートは5432に設定されています。他に何をチェックすればよいかわかりません。
ありがとう
次の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アドレスの範囲に変更できます。
使用に同意しません
Host all all 0.0.0.0/0 md5
データベースがインターネットに公開されている場合。私のプロジェクトでは、postrgresはクラウドにあり、バックエンドから使用されます。メンテナンスのためだけにデータベースに直接接続する必要があります。パブリックIPからデータベースに接続します(1.2.3.4など)。この場合、正しいエントリは次のとおりです。
Host mybackend myuser 1.2.3.4/0 md5
IPアドレスの後ろの「/ 0」に注意してください。 「/ 0」がないと、「接続拒否エラー」を受け取ります。
ホワイトリストのデータベース名、データベースユーザー、IPアドレスを指定して、データベースへのアクセスを制限することをお勧めします。開発環境でない限り、「ALL」を使用しないでください。
バイバイ!