Résoudre les problèmes
Tables corrompues dans une base de données MySQL
Symptômes
Qu'une erreur mentionne une table ne prouve pas qu'elle est corrompue. Conservez le code et le message exacts : un SQL invalide, des droits, un manque d'espace, des verrous ou une table inexistante demandent des procédures différentes.
Avant de réparer :
- Confirmez par une vérification que la table concernée est marquée comme corrompue.
- Identifiez son moteur dans phpMyAdmin.
REPAIR TABLEfonctionne pour des moteurs comme MyISAM et, sous MariaDB, Aria ; il ne répare pas InnoDB. - Gardez une sauvegarde restaurable. Une réparation peut verrouiller la table ou écarter des données endommagées.
Réparer depuis phpMyAdmin
Dans phpMyAdmin, sélectionnez uniquement la table confirmée, avec un moteur compatible, et utilisez Réparer la table. Ne sélectionnez pas toute la base en premier recours.
Réparer depuis cPanel
Dans cPanel > Manage My Databases, l'option Repair Database peut apparaître. Cette action porte sur la base entière ; ne l'utilisez qu'avec une sauvegarde disponible et après avoir confirmé qu'elle contient des tables que cet outil peut réparer.
Réparer via SSH
Si vous êtes un utilisateur avancé et que l'accès SSH est activé, vous pouvez lancer la réparation avec la commande suivante :
mysqlcheck -u USUARIO -p BASE TABLA mysqlcheck -u USUARIO -p --repair BASE TABLA
Sur les serveurs MariaDB, la commande équivalente peut être mariadb-check. Si la table est en InnoDB, si le serveur affiche ses propres erreurs ou s'il n'existe pas de sauvegarde valide, arrêtez l'intervention et contactez l'assistance ; ne forcez pas une récupération sur le service mutualisé.
Vérifier après la réparation
Conservez le résultat complet de la vérification et de la réparation. Comparez les décomptes et les fonctions de l'application avec une référence connue ; qu'une table s'ouvre de nouveau ne prouve pas qu'aucun enregistrement endommagé n'a été écarté.
Si l'erreur réapparaît, examinez l'espace disque, les journaux et l'état du serveur avec l'assistance avant de recommencer la réparation. N'ajoutez pas de tâche de réparation périodique pour remplacer le diagnostic et ne lancez pas d'outils sur les fichiers physiques d'une base en cours d'utilisation.
La référence de REPAIR TABLE détaille les moteurs et les limites. Pour InnoDB, la récupération doit être planifiée en fonction de l'erreur et de la sauvegarde disponible.
Cela peut aussi vous aider
- Conflit avec la table « system » de Drupal sous MySQL 8 (erreur 1064) Corrigez l'erreur 1064 de Drupal 6 et 7 sous MySQL 8 due à la table system, mot réservé : mettre à j...
- Joomla 1.0 et 1.5 avec MySQL 8, erreur avec le mot réservé « groups » Faites fonctionner un Joomla 1.0 ou 1.5 avec MySQL 8 en échappant le mot réservé groups dans les req...
- Pourquoi cPanel et phpMyAdmin affichent des tailles différentes pour une base de données Explique pourquoi cPanel et phpMyAdmin calculent des tailles différentes, comment repérer les tables...
- Certaines bases de données n'apparaissent pas dans phpMyAdmin Vérifiez si la base appartient au compte et demandez la vérification des permissions ou de la carte...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.