2016-07-19 16 views
11

私はPostgreSQL 9.3をUbuntu Server 14.04を実行しているサーバにインストールしています。ポート5432でPostgresqlに接続できません

私は端末経由でサーバにssh接続すると、psqlに接続できます。私は、リモート接続を行うためにpgAdminでIIIを設定しようとする。しかし、私が手:

9.3/main (port 5432): online 

だから、もちろん、私は欠けている何かを:

Server doesn't listen The server doesn't accept connections: the connection library reports could not connect to server: Connection refused Is the server running on host "172.24.3.147" and accepting TCP/IP connections on port 5432?

私は、サーバー上で実行service postgresql statusそれは私に与えますここで重要です。

EDIT

サーバー上で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 
+0

あなたはそのIPにバインドしませんでした。 pgが他の何かを聞いている、たぶんちょうど127.0.0.1:5432 –

+0

「バインド」とはどういう意味ですか?私はpgAdmin経由で接続しようとすると、サーバーのポート(sshで使用されています)を使用しています。 – Rodrigo

+0

あなたは接続のために聴くためにどのインタフェース/ ipにpgを伝える必要があります。それが127.0.0.1:5432にのみバインドされている場合、172.24.3.147:5432への試みは動作しません。何もそのip:portコンボを聞いていないからです。 –

答えて

17

あなたはpostgresql.confファイルを編集し、 'listen_addresses'で行を変更する必要があります。

このファイルは/etc/postgresql/9.3/mainディレクトリにあります。

デフォルトUbuntuの設定では、localhost(または127.0.0.1)のインタフェースだけが許可されています。これは、PostgreSQLクライアントがすべて同じコンピュータ上でPostgreSQLサーバとして動作する場合に十分です。あなたが他のコンピュータからのPostgreSQLサーバを接続したい場合、あなたはこのように、この設定行を変更している:

listen_addresses = '*' 

を次にあなたも、編集pg_hba.confファイルを持っています。このファイルでは、どのサーバーからこのサーバーに接続できるか、どのような認証方法を使用できるかを設定しています。編集postgresql.confの後

、あなたは、PostgreSQLサーバを再起動する必要があるpg_hba.conf:EDIT

...このファイルのコメントを読んで、

host all   all   192.168.1.0/24  md5 

てください:通常は、同様の行が必要になります。

+0

チャームのように働いた!ありがとうございました。 – Rodrigo

+0

あなたを歓迎します:-) –

+0

ありがとう、非常に有用:) – simon

0
あなたはおそらくあなたのLANでそれにアクセスするようにポートを開くのいずれか必要

(または)またはネットワークアドレスをポートにバインドする(ローカルホストではなくLAN上でリスンする)

+0

申し訳ありません、生涯のPC開発者として、私はこのポートのことに完全に精通していません。今は私たちのLAN(プロキシベースの機関ネットワーク)内でアクセスする必要があります。あなたのメッセージの残りの部分は私には分かりません。他のコメントを参照してください。 – Rodrigo

+1

Jan Marekの答えは、あなたが探しているものでなければなりません。 'tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN'この行は、Postgreがローカルネットワークからではなく、postgreが実行されているのと同じコンピュータから接続をlistenすることを示しています。 – Av4t4r

+0

大丈夫です。しかし、あなたは選択された行がPostgresについて知っていますか? 5432はデフォルトのポート番号なので、 – Rodrigo

0

コマンドライン接続でpsqlと同じ問題があり、pgAdminがRDSでAWSに接続していないという問題がありました。私はRDSをPublicly Accessibleに設定しました。 pg_hba.confのファイル内のディレクティブの先頭にhost all all 0.0.0.0/0 md5 を追加し、pgAdminでは、自動的に私にログイン

その後、 sudo nano ./data/pg_hba.confその後、 sudo find . -name *.conf :。私は私のACLとセキュリティグループはとても広いオープンしてまだ問題がなかったことを確認しました、私は次のようでした

これはまた、任意のIPアドレスなしでpg_hba.confファイル host all all md5で働いていたし、これはまた、注意点として、私のIPアドレスhost all all <myip>/32 md5

で働いていた、私のRDSが私のデフォルトVPCにありました。デフォルトのVPCと同じセキュリティグループ、ACL、およびセキュリティグループの設定をデフォルトのVPCに持つ同一のRDSインスタンスがあり、動作させることができませんでした。理由は分かりませんが、それは別の日です。

0

ファイアウォールの設定も確認してください。 pg_hba.confpostgres.confファイルを確認して再確認した後、ファイアウォールがすべてを上書きして接続をブロックしていることがわかりました

関連する問題