Je migre en docker
環(huán)境中度過了相當(dāng)多的時間,其中我的所有容器都是 docker
容器,并且我使用 Phinx
. Juste pour partager les différentes réponses pour différentes configurations.
Solutions de travail
"host" => "db", // {docker container's name} Worked "host" => "172.22.112.1", // {some docker IP through ipconfig - may change on every instance - usually something like 172.x.x.x} Worked
Solution invalide
"host" => "127.0.0.1", // SQLSTATE[HY000] [2002] Connection refused "host" => "docker.host.internal", // SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name does not resolve "host" => "localhost", // SQLSTATE[HY000] [2002] No such file or directory
Je l'exécute comme suit Phinx
.
docker compose --env-file .env run --rm phinx status -e development
J'ai trouvé la raison pour laquelle la connexion ne fonctionnait pas, c'était parce que la connexion essayait de se connecter au port 8888 alors qu'elle devait se connecter au port 8889.
$conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password);
Cela a résolu le problème, même si changer le nom du serveur en localhost m'a toujours donné l'erreur.
échec de la connexion?: SQLSTATE[HY000] [2002] Aucun fichier ou répertoire de ce type
Mais lorsque vous saisissez l'adresse IP comme nom de serveur, la connexion est réussie.