Maison  >  Questions et réponses  >  le corps du texte

Échec de la connexion PHP : connexion SQLSTATE refusée

<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粉068510991P粉068510991423 Il y a quelques jours550

répondre à tous(2)je répondrai

  • P粉434996845

    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

    répondre
    0
  • P粉186017651

    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.

    répondre
    0
  • Annulerrépondre