2

最近、SSH経由でサーバーにPostgreSQLをインストールしました。インストールは成功しましたが、Windows マシンで pgAdmin を使用して接続しようとすると、次のようなエラーが表示されました。

サーバーに接続できませんでした: 接続が拒否されました (0x0000274D/10061) サーバーはホスト "xxx.xxx.xxx.xxx" で実行されており、ポート 5432 で TCP/IP 接続を受け入れていますか?

xxx.xxx.xxx.xxx = サーバーのパブリック IP。

listen_addresses = '*'ドキュメントは、/etc/postgresql/9.1/main/postgresql.confの値を設定することでこれを修正できることを示唆しています。私はそれをしましたが、それでも私を許しません。

追加エラーが出た

致命的: ホスト "xxx.xx.xxx.xxx"、ユーザー "postgres"、データベース "postgres"、SSL の pg_hba.conf エントリがありません。FATAL: ホスト "xxx.xx.xxx.xxx" の pg_hba.conf エントリがありません。ユーザー「postgres」、データベース「postgres」、SSL オフ

xxx.xx.xxx.xxx = 私の IP アドレス。

何が欠けているようですか?

4

3 に答える 3

5

postgres 接続をブロックする可能性のあるもの:

  1. listen_addressでの設定ミスpostgresql.conf
  2. シーリナックス (?)
  3. iptables
  4. pg_hba.conf(これは別のエラーを引き起こすはずですが、サーバーがリッスンしないわけではありません)

ssh で接続して実行すると、ローカルでサーバーに接続できますpsqlか?

内部開発サーバーでは、selinux と iptables をオフにしています。これはセキュリティの観点からは悪い考えですが、問題がどこにあるかを絞り込むのに役立つ一時的なステップとして役立つかもしれません.

于 2012-09-05T17:55:41.697 に答える
2

複数の構成ファイルの変更が必要になる場合があります。あなたの場合、おそらくpg_hba.confも編集する必要があります。そのファイルで「非ローカル接続」を検索します。

構成ファイルをバージョン管理下に置くのが好きです。そうすれば、間違いから回復しやすくなります。

これらの変更を行った後、おそらく PostgreSQL サーバーを再起動する必要があります。

于 2012-09-05T17:56:49.957 に答える
1
  • サーバーの listen_addresses 設定を変更した後、必ず PostgreSQL サーバーを再起動してください (kill -HUP などを使用して、postmaster プロセスに SIGHUP を送信します)。
  • postgresql.conf ポートが 5432 に設定されていることを確認してください
  • サーバーでファイアウォールが実行されている場合は、使用しているウィンドウの (クライアント) マシンからの接続に対してポート 5432 が開いていることを確認してください。
  • pg_hba.conf をチェックして、クライアント マシンのサブネットにアクセス権が付与されていることを確認します。
  • psql をローカルで使用してみる
于 2012-09-05T18:01:04.977 に答える