Comment réparer les tables marquées comme mauvaises ou corrompues dans MySQL

Pendant plus d'un an nous avons utilisé le plugin Counterizer pour WordPress et ainsi tenir des statistiques du blog et de ses lecteurs, ce plugin a été désactivé il y a quelques jours car (entre autres) il a sauvé plus de 600 Mo de données dans la base de données.

Il arrive que (avant de désactiver le plugin et de nettoyer la base de données) j'ai essayé de vider la base de données, c'est-à-dire de l'exporter vers .SQL et de la télécharger ainsi et dans le terminal d'hébergement, j'ai eu l'erreur suivante:

mysqldump: Erreur obtenue: 144: La table './dl_database/Counterize_Referers' est marquée comme plantée et la dernière réparation (automatique?) a échoué lors de l'utilisation de LOCK TABLES

Le dump n'a donc pas été effectué et bien... la simple idée de penser que la base de données DesdeLinux avait un problème m'a fait dresser les cheveux sur la tête 

En faisant un peu de recherche sur le Web, j'ai pu apprendre à résoudre ce problème, apparemment ce n'est PAS que la base de données a des problèmes exactement, juste qu'une table est marquée comme `` avec des problèmes '', heureusement c'est très simple à corriger.

Commençons par accéder au serveur MySQL:

mysql -u root -p

Nous appuyons sur [Entrée] et il nous demandera le mot de passe root MySQL, nous le mettons et appuyons à nouveau sur [Entrée].

Cette commande est au cas où le serveur MySQL est installé sur le même ordinateur, si vous souhaitez vous connecter à distance à un autre serveur MySQL, vous devez ajouter ce qui suit à la ligne: -h IP-DU-SERVEUR

Une fois dans MySQL, nous vous dirons quelle base de données utiliser, par exemple le problème selon l'erreur ci-dessus est dans le tableau Counterize_Referers de la base de données  dl_base de données, Pour ce que:

use database dl_database;

Et maintenant pour réparer la base de la table:

repair table Counterize_Referers;

Notez qu'à la fin de ces lignes il y a un point-virgule —– »  ;

Une fois la commande précédente exécutée, tout aurait dû revenir à la normale, du moins dans mon cas cela a été comme ça à plusieurs reprises 

Ensuite, il ne reste plus qu'à réexécuter l'instruction pour vider la base de données et le tour est joué, rien de plus.

Quoi qu'il en soit, je fais cela plus que toute autre chose pour me rappeler, car la même chose m'est déjà arrivée deux fois et je ne veux pas oublier les instructions pour sauver la situation 

Salutations et j'espère que cela sera utile à quelqu'un d'autre.


Ajouter comme source préférée dans Google