[MYSQL] Table marked as crashed and last repair failed when doing LOCK TABLES

table marked as crashed   Voici une erreur que vous pouvez obtenir avec mysql :
mysqldump: Got error: 144: Table 'visiteur' is marked as crashed and last (automatic?) repair failed when doing LOCK TABLES
Ce message d'erreur ressemble à corruption d'index de MyISAM . Il est necessaire de réparer la table pour reconstruire l'index. Pour nous aider dans cette aventure périlleuse, nous allons nous appuyer sur l'outil, myisamchk. Il s'agit d'un petit utilitaire mysql bien pratique pour obtenir des informations sur vos tables, pour les vérifier, ou encore les optimiser. Mais aussi vous sauver la vie réparer des tables endommagées. Petit coup d'oeil à la syntaxe, pour réparer votre table nous allons utiliser l'option --recover :
myisamchk -–recover /var/lib/mysql/DATABASENAME/TABLE_NAME.myi
Avant de vous lancer, vous pouvez exécuter, au préalable, la commande suivante, pour vérifier votre table :
myisamchk visiteur.MYIMyISAM-table-is-usable-but-should-be-fixed
Et maintenant, tentons de corriger le problème. D'abord, avant de faire quoi que ce soit, vous devez faire une sauvegarde physique de tous vos fichiers de base de données. Même si la réparation de myisamchk est assez sécurisée,on n'est jamais trop prudent.
myisamchk --recover visiteur.MYI
Si cela ne marche pas ou ne récupère pas complètement votre table, comme dans la copie d'écran suivante : myisamchk--recover-ne-marche-pas   Vous pouvez ré-exécuter la commande en remplaçant -recover par -safe-recover qui est plus lent, mais plus approfondie :
myisamchk --safe-recover --force visiteur.MYI
myisamchk-fonctionne-pour-reparer-mon-index-mysql Puis, vous pouvez relancer une vérification :
myisamchk visiteur.MYI

myisamchk: warning: 1 clients is using or hasn't closed the table properly


myisamchk-warning Pas de panique : vous essayez de vérifier une table qui a été modifiée par un autre programme qui n'a pas encore refermé le fichier de table, ou que le fichier n'a pas été correctement refermé.

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.