Échec de la connexion PHP : connexion SQLSTATE refusée
P粉068510991
2023-08-23 18:49:26
<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>
Je migre en
docker
环境中度过了相当多的时间,其中我的所有容器都是docker
容器,并且我使用Phinx
. Juste pour partager les différentes réponses pour différentes configurations.Solutions de travail
Solution invalide
Je l'exécute comme suit
Phinx
.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.
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.