WordPress joint bien le serveur de base de données, mais il ne parvient pas à lire sa table d’options (wp_options), alors que d’autres tables du site existent. Il en déduit qu’une ou plusieurs tables sont endommagées ou manquantes. Ce message s’affiche dans l’administration ; au même moment, les visiteurs voient en général « Error establishing a database connection ».
Pourquoi cette erreur apparaît
- Une table au format MyISAM ou Aria a été marquée comme endommagée après un arrêt brutal du serveur.
- La table des options a été supprimée, vidée ou mal importée lors d’une migration ou d’une restauration partielle.
- L’espace disque du serveur de base de données est saturé, ce qui empêche de lire ou d’écrire les tables.
- Une manipulation directe dans phpMyAdmin a modifié la structure de wp_options.
Comment corriger le problème
Exporter la base telle qu’elle est
Avant toute réparation, exportez la base depuis phpMyAdmin ou avec l’outil de sauvegarde de votre hébergeur. Même abîmée, cette copie servira si la réparation tourne mal.
Vérifier l’espace et l’état du serveur
Dans l’espace client, regardez si le quota d’espace ou la taille maximale de la base sont atteints, et si un incident est en cours sur les serveurs de bases de données. Une base pleine doit être allégée avant d’être réparée.
Lancer la réparation intégrée à WordPress
Ajoutez la ligne ci-dessous dans wp-config.php, au-dessus de « C’est tout, ne touchez pas à ce qui suit », puis ouvrez votre-site.fr/wp-admin/maint/repair.php et cliquez sur « Réparer la base de données » (Repair Database). WordPress vérifie chacune de ses tables et répare celles qu’il peut. Cette page est accessible sans mot de passe : retirez la ligne dès la réparation terminée.
define( 'WP_ALLOW_REPAIR', true );
Vérifier et réparer avec WP-CLI
Avec un accès SSH, WP-CLI vérifie puis répare la base en deux commandes, sans passer par le navigateur, si l’outil mysqlcheck est installé sur le serveur. La vérification porte sur toutes les tables ; la réparation, comme celle de la page intégrée, ne fonctionne que sur les tables MyISAM et Aria : une table InnoDB endommagée se restaure depuis une sauvegarde, ou avec l’aide de l’hébergeur.
wp db check
wp db repair
Exportez la base avant la moindre réparation, et retirez la ligne WP_ALLOW_REPAIR de wp-config.php dès que vous avez terminé.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur