Maison >base de données >tutoriel mysql >Comment réparer « Échec de la connexion : SQLSTATE[HY000] [2002] Connexion refusée » dans les connexions PHP MySQL ?

Comment réparer « Échec de la connexion : SQLSTATE[HY000] [2002] Connexion refusée » dans les connexions PHP MySQL ?

DDD
DDDoriginal
2024-12-11 09:41:11497parcourir

How to Fix

Résolution de "Échec de connexion : SQLSTATE[HY000] [2002] Connexion refusée" avec PHP

Lors de la tentative d'établissement d'une connexion PHP à une base de données MySQL hébergée sur phpMyAdmin, les utilisateurs peuvent rencontrer l'erreur frustrante « Échec de la connexion : SQLSTATE[HY000] [2002] Connexion refusée ». Cette erreur indique que le script PHP ne peut pas se connecter au serveur de base de données.

Par exemple, considérons le code PHP suivant :

$servername = "127.0.0.1";
$username = "root";
$password = "root";

try {
    $conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}

Ce code tente de se connecter à une base de données MySQL à l'aide du PDO (Objets de données PHP). Cependant, lors de l'utilisation de la connexion via Postman, l'erreur « Échec de la connexion : SQLSTATE[HY000] [2002] Connexion refusée » se produit.

Au départ, on peut rencontrer l'erreur « Échec de la connexion : SQLSTATE[HY000] [2002 ] Aucun fichier ou répertoire de ce nom." Cela se produit lorsque le nom du serveur est défini sur « localhost ». Changer le nom du serveur en adresse IP résout ce problème mais entraîne l'erreur « Connexion refusée ».

La solution à ce refus de connexion réside dans le numéro de port utilisé. Le port par défaut pour MySQL est 3306. Cependant, pour les connexions via MAMP, le port doit être défini sur 8889.

Ajuster le code comme suit résoudra le problème de connexion :

$conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password); 

Avec cette modification, le script PHP se connectera avec succès à la base de données MySQL en utilisant le port 8889.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn