Comment résoudre l’erreur « An exception occurred in the driver: SQLSTATE[HY000] [2002]
Comment résoudre l’erreur « An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused » dans un projet Symfony 6
![Comment résoudre l’erreur « An exception occurred in the driver: SQLSTATE[HY000] [2002]](/images/blog/screenshot_an exception_occurred_in_driver_SQLSTATE.webp)
Origines possibles (sans entrer dans le détail)
- Le service MySQL n’est pas démarré.
- Le fichier socket /var/run/mysqld/mysqld.sock est absent.
- Le port TCP 3306 est occupé ou bloqué par un pare‑feu.
- Le DSN DATABASE_URL dans Symfony est incorrect.
Ces causes varient selon les systèmes ; si vous avez vérifié les points ci -dessus la procédure ci‑dessous règle le problème dans la plupart des cas en réinitialisant le mot de passe root.
Arrêter MySQL et recréer le dossier du socket
sudo systemctl stop mysql sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld
Démarrer MySQL en mode secours
sudo mysqld_safe --skip-grant-tables --skip-networking --user=mysql &
-skip-grant-tables : désactive l’authentification.
-skip-networking : empêche les connexions externes le temps de l’opération.
Ouvrir une seconde console et se connecter
mysql -u root
Réinitialiser le compte root avec un mot de passe
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'un_mot_de_passe';
EXIT;
Relancer MySQL normalement
Méthode recommandée:
sudo pkill mysqld
sudo systemctl start mysql
Vérifier que MySQL est bien redémarré:
sudo systemctl status mysql
Conseil : Choisissez un mot de passe simple pour le développement (ex: 'root', 'dev', 'password') mais n'oubliez pas de mettre à jour votre configuration Symfony dans le fichier .env.local
.