Mein Stack ist ziemlich verbreitet, ein Container für meine Symfony-App, ein weiterer für Mysql. Aus irgendeinem Grund kann Symfony zu Mysql Behälter verbinden nicht mit folgenden Fehler:Symfony-Docker-Container kann keine Verbindung zu Mysql herstellen
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Eine einfache PHP-Datei, um die MySQL-Verbindung zu testen, auf dem Symfony Behälter mit diesem hier
<?php
$dbh = new PDO('mysql:host=database;dbname=mysite', 'mysite', 'password');
funktioniert, ist, Datei meine Symfony Parameter:
database_driver: pdo_mysql
database_host: database
database_port: 3306
database_name: mysite
database_user: mysite
database_password: password
Und hier ist meine docker-compose-Datei:
site:
build: webapp
ports :
- "80:80"
volumes:
- /home/myuser/dev/mysite:/var/www/html/
links:
- database
database:
image: mysql:5.5
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=mysite
- MYSQL_USER=mysite
- MYSQL_PASSWORD=password
Ich habe auch mit einem neuen Symfony-Projekt ohne Fehler versucht.
Überprüfen config/param-Dateien für beide Umgebungen. Es scheint zu ignorieren Ihre Parameter (versuchen, lokal zu verbinden) – JimL
Ich glaube nicht, da die Fehlermeldung Login-Parameter enthält und es aktualisiert wird, wie ich meine Parameter-Datei ändern. PDO -> __ Konstrukt ('mysql: dbname = mein ...', 'mysite', 'passwort') – loicb
Ich fand diese Antwort, die darauf hindeutet, ein Leerzeichen zwischen 'mysql:' und 'host' zu setzen; http://StackOverflow.com/a/25432156/1811501 – thaJeztah