Échec de la connexion PHP : connexion SQLSTATE refusée
P粉068510991
P粉068510991 2023-08-23 18:49:26
0
2
582
<p>J'essaie de me connecter à une base de données MySQL sur phpmyadmin à l'aide d'une connexion PHP. Rien de spécial concernant la connexion, je voulais juste voir si la connexion avait réussi. J'utilise MAMP pour héberger la base de données et la connexion que j'essaie d'utiliser est la suivante : </p> <pre class="brush:php;toolbar:false;"><?php $nom du serveur = "127.0.0.1" ; $nom d'utilisateur = "racine" ; $mot de passe = "racine" ; essayer { $conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password); // définit le mode d'erreur PDO sur exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connecté avec succès" ; } capture (PDOException $e) { echo "Échec de la connexion : " $e->getMessage(); } ?>≪/pré> <p>J'utilise Postman pour tester que la connexion fonctionne, mais je continue de recevoir ce message d'erreur : </p> <blockquote> <p>Échec de la connexion : SQLSTATE[HY000] [2002] Connexion refusée</p> </blockquote> <p>Avant de recevoir le message d'erreur suivant : </p> <blockquote> <p>Échec de la connexion : SQLSTATE[HY000] [2002] Aucun fichier ou répertoire de ce type</p> </blockquote> <p>C'est parce que j'ai défini le nom du serveur sur localhost et qu'en le remplaçant par l'adresse IP, la connexion est refusée et je ne sais pas ce qui ne va pas. </p> <p>Toute aide concernant ce problème serait grandement appréciée. </p>
P粉068510991
P粉068510991

répondre à tous(2)
P粉434996845

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粉186017651

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal