Maison > Questions et réponses > le corps du texte
P粉4349968452023-08-24 10:47:03
Je migre en docker
环境中度过了相当多的时间,其中我的所有容器都是 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
P粉1860176512023-08-24 10:10:42
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.