Ubuntu Server 14.04を実行しているサーバーにPostgreSQL 9.3をインストールしています。
ターミナル経由でサーバーにSSH接続すると、psqlで接続できます。しかし、リモート接続を行うようにpgAdmin IIIを構成しようとすると、次のようになります:
サーバーがリッスンしないサーバーは接続を受け入れません:接続ライブラリレポートはサーバーに接続できませんでした:接続は拒否されましたサーバーはホスト "172.24.3.147"で実行され、ポート5432でTCP/IP接続を受け入れますか?
サーバーで実行するとservice postgresql status
が得られます:
9.3/main (port 5432): online
ですから、もちろんここで重要なものを見逃しています。
編集
サーバーでnetstat -na
を実行すると、次のようになります(関連部分、推測します):
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 172.24.3.147:22 172.24.3.240:61950 ESTABLISHED
tcp 0 0 172.24.3.147:22 172.24.3.240:60214 ESTABLISHED
postgresql.confファイルを編集し、「listen_addresses」で行を変更する必要があります。
このファイルは、/etc/postgresql/9.3/main
ディレクトリにあります。
デフォルトのUbuntu構成では、localhost(または127.0.0.1)インターフェイスのみが許可されています。これは、すべてのPostgreSQLクライアントが同じコンピューター上でPostgreSQLサーバーとして動作する場合に使用するのに十分です。他のコンピューターからPostgreSQLサーバーに接続する場合は、次のようにこの構成行を変更します。
listen_addresses = '*'
次に、pg_hba.confファイルも編集します。このファイルでは、このサーバーに接続できるコンピューターと、使用できる認証方法を設定しました。通常、同様の行が必要です。
Host all all 192.168.1.0/24 md5
このファイルのコメントを読んでください...
編集:
Postgresql.confとpg_hba.confを編集した後、postgresqlサーバーを再起動する必要があります。
EDIT2:強調表示された構成ファイル。
ファイアウォールの設定も確認してください。 pg_hba.conf
およびpostgres.conf
ファイルをチェックしてダブルチェックした後、ファイアウォールがすべてを上書きしているため、接続をブロックしていることがわかりました
MacOSシステムのアップグレード後も同じ問題が発生しました。 postgresをbrewでアップグレードすることで解決しました。詳細:システムが古いPostgres 10設定を使用してPostgres 11にアクセスしようとしていたようです。過去のどこかで間違いだったと思いますが、幸運なことに、上記のアップグレードですべてが整理されました。
LAN(または外部)でアクセスするためにポートを開くか、ネットワークアドレスをポートにバインドする必要があります(PostgreSQLがローカルホストだけでなくLANでリッスンするようにする)
これは私に二度かまれたので、私は言及する価値があると思いました。 postgresql.confのlisten_addresses = '*'という行はデフォルトでコメント化されています。それ以外の場合は、更新後にコメントを外してください(先頭の#を削除してください)。そうしないと、リモート接続は引き続きブロックされます。