L’écran blanc avec le message “Error establishing a database connection” est l’une des pannes les plus stressantes pour un propriétaire de site WordPress. Votre site est totalement inaccessible, vos clients ne peuvent plus vous contacter, et vous ne savez pas par où commencer. Ce guide vous explique les 4 causes principales et comment les résoudre vous-même.
Ce que signifie cette erreur
WordPress est un CMS qui stocke tout dans une base de données MySQL : vos articles, pages, réglages, utilisateurs. À chaque visite, WordPress se connecte à cette base pour lire et afficher le contenu. Quand la connexion échoue, le site ne peut rien afficher et retourne cette erreur générique.
L’erreur peut apparaître en frontal (visiteurs), en backend (tableau de bord /wp-admin), ou les deux à la fois. La localisation vous donne déjà une indication sur la cause.
Cause 1 : les identifiants dans wp-config.php sont incorrects
C’est la cause la plus fréquente, surtout après une migration ou un changement d’hébergeur.
Diagnostic
Ouvrez le fichier wp-config.php à la racine de votre WordPress (via FTP ou votre gestionnaire de fichiers). Cherchez ces 4 lignes :
define( 'DB_NAME', 'nom_de_la_base' );
define( 'DB_USER', 'utilisateur_mysql' );
define( 'DB_PASSWORD', 'mot_de_passe' );
define( 'DB_HOST', 'localhost' );
Solution
Connectez-vous à votre panel d’hébergement (cPanel, Plesk, etc.) et vérifiez les informations de votre base de données. Copiez-les exactement dans wp-config.php. Attention aux caractères spéciaux dans les mots de passe qui peuvent nécessiter des guillemets.
La valeur DB_HOST est presque toujours localhost, mais certains hébergeurs utilisent une adresse IP ou un port spécifique (localhost:3306 par exemple).
Cause 2 : le serveur MySQL est arrêté
Le service MySQL peut s’arrêter suite à une surcharge serveur, une mise à jour automatique, ou un incident chez l’hébergeur.
Diagnostic
Si vous avez accès à un panneau d’administration serveur (WHM, Plesk, SSH), vérifiez l’état du service MySQL. Sur un VPS en SSH :
systemctl status mysql
Solution
- Hébergement mutualisé : contactez immédiatement votre hébergeur. Vous n’avez pas accès au service MySQL — c’est leur responsabilité.
- VPS/serveur dédié : relancez le service avec
systemctl restart mysqlpuis vérifiez les logs/var/log/mysql/error.log.
Si MySQL redémarre mais retombe en erreur quelques minutes plus tard, le problème est plus profond (tables corrompues, manque de mémoire RAM).
Cause 3 : la limite de connexions simultanées est atteinte
MySQL autorise un nombre maximum de connexions simultanées. Un pic de trafic, un plugin mal codé qui ouvre des connexions sans les fermer, ou un site sous attaque peut épuiser ce quota.
Diagnostic
Dans votre panel hébergeur, regardez si d’autres sites sur le même compte sont aussi tombés. Vérifiez les logs d’accès pour un pic de requêtes anormal.
Solution
- Court terme : augmentez la valeur
max_connectionsdans la configuration MySQL (nécessite accès serveur ou support hébergeur). - Moyen terme : activez un système de cache (WP Super Cache, W3 Total Cache) pour réduire les requêtes MySQL. Désactivez les plugins récemment installés un par un pour identifier celui qui crée des fuites de connexions.
Cause 4 : des tables MySQL sont corrompues
Une coupure de courant, un crash serveur, ou une mise à jour WordPress interrompue peuvent corrompre les tables de la base de données.
Diagnostic
WordPress détecte parfois lui-même la corruption et propose un lien pour réparer la base. Si ce n’est pas le cas, connectez-vous à phpMyAdmin via votre hébergeur, sélectionnez votre base, et cherchez des tables avec le statut “In use” ou “Crashed”.
Solution
Via phpMyAdmin :
- Sélectionnez toutes les tables affichées comme corrompues
- Dans le menu déroulant du bas, choisissez “Réparer la table”
Via wp-config.php :
Ajoutez temporairement cette ligne, puis accédez à votresite.fr/wp-admin/maint/repair.php :
define( 'WP_ALLOW_REPAIR', true );
Supprimez cette ligne immédiatement après la réparation pour des raisons de sécurité.
Diagnostic étape par étape
- Vérifiez que votre hébergeur ne signale pas d’incident en cours (page de statut)
- Contrôlez les identifiants dans
wp-config.php - Testez la connexion à la base depuis phpMyAdmin avec ces mêmes identifiants
- Regardez si MySQL est actif dans votre panel
- Vérifiez l’intégrité des tables
Quand appeler un professionnel
Si après avoir suivi ces étapes l’erreur persiste, ou si vous n’êtes pas à l’aise avec l’accès FTP et phpMyAdmin, il vaut mieux ne pas insister seul. Une mauvaise manipulation sur la base de données peut aggraver la situation et entraîner une perte de données définitive.
Notre service d’urgence site WordPress intervient sous 2 heures pour remettre votre site en ligne. Pour éviter que ce type de panne se reproduise, un contrat de maintenance WordPress inclut des sauvegardes quotidiennes et une surveillance proactive de la base de données.
Prévention : ne subissez plus cette panne
- Sauvegardez votre base de données tous les jours (plugin UpdraftPlus ou votre hébergeur)
- Documentez les identifiants de connexion MySQL dans un gestionnaire de mots de passe
- Mettez en place une alerte de disponibilité (UptimeRobot gratuit) pour être prévenu dès que le site tombe
- Évitez les hébergements mutualisés bas de gamme où les ressources MySQL sont partagées entre des centaines de sites