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]

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.