Le serveur a détecté qu’une table de la base est endommagée et refuse de s’en servir tant qu’elle n’est pas réparée. Ce message concerne les tables au format MyISAM ou Aria, plus fragiles qu’InnoDB face à un arrêt brutal. Quand la table touchée est wp_options, tout le site tombe ; pour une autre table, seule une partie des contenus est affectée.
Pourquoi cette erreur apparaît
- Le serveur de base de données s’est arrêté brutalement (coupure, redémarrage forcé, manque de mémoire) pendant une écriture.
- Le disque s’est rempli pendant une écriture dans la table.
- La table est restée au format MyISAM, hérité d’une installation ancienne, plus sensible à ces incidents qu’InnoDB.
- Les fichiers de la base ont été copiés pendant que le serveur tournait.
Comment corriger le problème
Exporter la base avant de réparer
Même endommagée, la base doit être sauvegardée avant toute réparation, depuis phpMyAdmin ou avec l’outil de sauvegarde de l’hébergeur. Si l’export bloque sur la table abîmée, exportez au moins toutes les autres.
Chercher l’outil de réparation de l’hébergeur
Plusieurs interfaces d’hébergement proposent une réparation de base en un clic ; dans cPanel, elle se trouve dans la rubrique Bases de données MySQL. Regardez dans votre espace client avant de passer aux outils plus techniques.
Réparer la table dans phpMyAdmin
Ouvrez la base, cochez la table citée dans le message, puis choisissez l’action de réparation dans le menu déroulant placé sous la liste des tables. Vous pouvez aussi lancer ces deux requêtes dans l’onglet SQL : la première vérifie, la seconde répare.
CHECK TABLE wp_options;
REPAIR TABLE wp_options;
Passer par WordPress sans phpMyAdmin
Si vous n’avez pas accès à phpMyAdmin, la ligne WP_ALLOW_REPAIR ajoutée à wp-config.php ouvre la page de réparation intégrée, wp-admin/maint/repair.php, qui traite les tables de WordPress. Retirez la ligne une fois la réparation faite, car cette page n’exige aucun mot de passe.
define( 'WP_ALLOW_REPAIR', true );
Convertir les tables en InnoDB
Une fois la table réparée et la base sauvegardée, la passer au format InnoDB la rend bien plus résistante aux arrêts brutaux. Listez d’abord les tables encore en MyISAM, puis convertissez-les une à une.
SELECT table_name, engine FROM information_schema.tables
WHERE table_schema = DATABASE() AND engine = 'MyISAM';
ALTER TABLE wp_options ENGINE = InnoDB;
Exportez la base, ou au moins les tables encore lisibles, avant de lancer une réparation : REPAIR TABLE peut écarter des lignes qu’il juge irrécupérables.
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