2017-02-01 20 views
0

PHPでPostgreSQLに接続できません。私のPostgreSQLはドッカーのコンテナです。 私はIPを取得:PHP経由でDockerのPostgreSQLに接続できません

私が接続しようとしている方法
docker inspect toshi_db_1 

$dbconn = pg_connect("host=172.17.0.2 port=5432 dbname=toshi_development")or die("Could not connect"); 

エラー: 警告:のpg_connect():PostgreSQLサーバに接続できません:サーバーに接続できませんでした:接続がタイムアウトしました(0x0000274C/10060)サーバーがホスト上で稼働していますか" 172.17.0.2 "、ポート5432でTCP/IP接続を受け入れていますか?

私は、listen_address設定パラメータでPostgreSQL.confに問題があると思っていましたが、すべての接続が許可されているので、どこに問題があるのか​​わかりません。

更新:私はそれを自分で修正しました。ちょうどdocker-composeファイルの間違ったポートを公開しようとしました。

+0

コンテナの作成時にポートを正しく公開しましたか? 'docker-composer'を使っていますか? –

+0

私はdocker-composerを使用しています – Welllback

+0

ポート5432を正しく公開していますか?あなたの 'docker-compose.yml'ファイルを私たちに教えてください。 –

答えて

1

今日は同じ状況に陥っています。解決策は、localhostポートをという名前のコンテナのに置き換えていました。 Like:

$dbconn = pg_connect("host=toshi_db_1 port=5432 dbname=toshi_development")or die("Could not connect"); 

IPと同じである必要があるかどうかわかりません。しかしIPは変わらないのですか?

この投稿を表示している他の人には:127.0.0.1は常に現在のコンテナを指していることを覚えておいてください。だからあなたはその "localhost"の部分をあなたのコンテナ名に置き換える必要があります。

関連する問題