2017-02-01 2 views
0

Ich kann keine Verbindung zu PostgreSQL mit PHP-Code. Mein PostgreSQL ist Andock-Container. erhalte ich eine IP mit:Keine Verbindung zu PostgreSQL in Docker durch PHP

docker inspect toshi_db_1 

Wie ich versuche zu verbinden:

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

Fehler: Warnung: pg_connect(): Kann nicht PostgreSQL-Server verbinden: keine Verbindung zum Server konnte : Zeitüberschreitung der Verbindung (0x0000274C/10060) Wird der Server auf dem Host " 172.17.0.2 " ausgeführt und akzeptiert TCP/IP-Verbindungen an Port 5432?

Ich dachte, es könnte Probleme in PostgreSQL.conf mit listen_address Konfigurationsparameter, aber es erlaubt alle Verbindungen, so dass ich keine Ahnung habe, wo das Problem ist.

UPDATE: Ich habe es selbst behoben, nur versucht, den falschen Port in Docker-Compose-Datei zu entlarven.

+0

Haben Sie den Port beim Erstellen des Containers korrekt angezeigt? Benutzt du 'docker-composer'? –

+0

Ich benutze Docker-Composer – Welllback

+0

Sind Sie den Port 5432 richtig? Zeigen Sie uns Ihre 'docker-compose.yml'-Datei. –

Antwort

1

Ich laufe heute in der gleichen Situation. Die Lösung löste den localhost-Port durch den -Namen des Containers. Wie:

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

Nicht sicher, ob es mit IPs gleich sein sollte. Aber ändern sich die IPs nicht?

Also, für andere Leute, die diesen Beitrag sehen: Denken Sie daran, dass 127.0.0.1 immer auf den aktuellen Container zeigt. Sie müssen also diesen "localhost" -Teil durch Ihren Containernamen ersetzen.

Verwandte Themen