Étude

Erreur de connexion base de données WordPress: réparer wp-config.php, DB_HOST et restaurer MySQL

Dépannage WordPress en Suisse romande: erreur « Error establishing a database connection », vérification identifiants DB, DB_HOST, statut MySQL, réparation tables et cache. Site restauré sans perte de contenu.

Contexte

Le site WordPress d’une PME en Suisse romande est devenu indisponible, avec le message « Error establishing a database connection ». Ce type d’incident peut venir d’un mot de passe modifié, d’un changement d’hébergement, d’un serveur MySQL indisponible, ou d’une base de données corrompue. L’objectif était de rétablir le site vite, puis d’éliminer la cause racine.

Symptômes observés

  • Message WordPress: Error establishing a database connection.
  • Front-end et /wp-admin indisponibles.
  • Selon les cas, accès phpMyAdmin possible ou non.

Objectifs du dépannage

  • Confirmer si la base est indisponible (serveur) ou si la config est erronée.
  • Rétablir la connexion sans restauration globale si évitable.
  • Vérifier l’intégrité des tables et la stabilité MySQL/MariaDB.
  • Renforcer la prévention (monitoring, sauvegardes, alertes).

Diagnostic (checklist)

  • Contrôle du statut MySQL/MariaDB côté hébergeur (incident global ou compte isolé).
  • Vérification de wp-config.php : DB_NAME, DB_USER, DB_PASSWORD, DB_HOST.
  • Test de connexion via un script PHP minimal (si nécessaire).
  • Contrôle des tables: corruption, verrouillage, taille, espace disque.
  • Vérification du DNS/Cloudflare (rare, mais possible en migration).

Exemple technique : contrôle rapide dans wp-config.php

Erreurs fréquentes: DB_HOST incorrect ou mot de passe modifié côté hébergeur.

define('DB_NAME', 'nom_de_db');
define('DB_USER', 'utilisateur_db');
define('DB_PASSWORD', 'mot_de_passe_db');
define('DB_HOST', 'localhost'); // parfois une valeur fournie par l'hébergeur

Exemple technique : tester la connexion MySQL (script minimal)

À déposer temporairement puis supprimer.

<?php
$mysqli = @new mysqli('DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME');
if ($mysqli->connect_error) {
  header('Content-Type: text/plain; charset=utf-8');
  echo "Erreur MySQL: " . $mysqli->connect_error;
  exit;
}
echo "OK: connexion DB";

Exemple technique : réparation via WP-CLI

Si WP-CLI est disponible, cela accélère le diagnostic.

wp db check
wp db repair

Exemple technique : activer la réparation native WordPress

À activer temporairement, puis désactiver immédiatement.

define('WP_ALLOW_REPAIR', true);
https://www.exemple.ch/wp-admin/maint/repair.php

Cause identifiée

Dans ce cas, le mot de passe de l’utilisateur MySQL avait été régénéré côté hébergement, sans mise à jour correspondante dans wp-config.php. Une fois le bon couple utilisateur/mot de passe réappliqué, la connexion a été restaurée. Un contrôle de tables a ensuite confirmé l’absence de corruption.

Correctifs appliqués

  • Mise à jour des identifiants DB dans wp-config.php.
  • Contrôle du DB_HOST (valeur fournie par l’hébergeur si différente de localhost).
  • Vérification des tables via wp db check et contrôle d’espace disque.
  • Purge du cache applicatif et CDN (si actif) pour éviter des erreurs résiduelles.
  • Ajout d’un monitoring disponibilité + alertes, pour détecter plus tôt.

Résultats

  • Site remis en ligne et admin accessible.
  • Connexion DB stabilisée, sans restauration de sauvegarde.
  • Contrôles effectués sur pages clés et formulaires.

Prévention mise en place

  • Documentation des paramètres DB (sans exposer les secrets).
  • Procédure de changement de mot de passe: rotation + mise à jour wp-config.php.
  • Monitoring uptime et alertes (incident détecté en minutes, pas en heures).
  • Routine mensuelle: sauvegardes vérifiées, contrôle logs, tests rapides.

Points clés à retenir

  • Cette erreur est souvent liée à un changement de credentials ou à une indisponibilité MySQL.
  • Le diagnostic commence par wp-config.php et les logs, pas par une restauration.
  • Une fois remis en ligne, vérifier les tables et mettre du monitoring évite les surprises.

Un projet similaire ou un souci WordPress ?

Que ce soit pour lancer un projet, améliorer un site existant ou résoudre un problème, on vous aide à clarifier la situation et à avancer simplement.