« tbl_name.frm » fichier de définition de table (table) « tbl_name. MYD « Fichier de données » tbl_name. Fichier index MYI" Chacun de ces trois types de fichiers peut souffrir de différentes formes de corruption, mais le problème survient le plus souvent dans les fichiers de données et les fichiers index. myisamchk crée un ". MYD » (données) fonctionne, il fonctionne en supprimant l’ancien fichier « . MYD et renommer le nouveau fichier avec le nom original pour mettre fin à la phase de réparation. Si vous utilisez --quick, myisamchk ne crée pas un temporaire ". MYD » en supposant ». MYD » est correct et ne crée qu’un nouveau fichier index, sans toucher ». MYD », qui est sûr car myisamchk détecte automatiquement ». MYD" est corrompu et dans ce cas, abandonnez la réparation. Vous pouvez aussi donner à myisamchk deux options — rapides. Dans ce cas, myisamchk ne renonce pas à certaines erreurs (comme la répétition des touches), mais tente plutôt de modifier le ". MYD" pour les résoudre. En général, elle n’est utile que si vous mettez en place une correction normale avec trop peu d’espace libre sur le disque, en utilisant les deux options rapides. Dans ce cas, vous devriez au moins faire une sauvegarde avant d’exécuter myisamchk. 1. Comment vérifier les erreurs dans le tableau Pour vérifier une table, utilisez la commande suivante : mon isamchk tbl_name Cela détecte 99,99 % de toutes les erreurs. Ce qu’il ne peut pas découvrir, c’est que la corruption n’est impliquée que dans les fichiers de données (ce qui est rare). Si vous voulez vérifier une table, vous devriez généralement exécuter myisamchk sans cette option ou utiliser l’une des options -s ou --silent. myisamchk -e tbl_name Il effectue une vérification complète des données (-e signifie « vérification étendue »). Il effectue une vérification de lecture par clé sur chaque ligne pour confirmer qu’elles pointent bien vers la bonne ligne. Cela peut prendre beaucoup de temps sur une grande table avec de nombreuses clés. myisamchk s’arrête généralement après avoir détecté la première erreur. Si vous souhaitez plus d’informations, vous pouvez ajouter l’option --verbose(-v). Cela fait que myisamchk continue jusqu’à un maximum de 20 erreurs. En usage général, un myisamchk simple (sans autres arguments que le nom de la table) est suffisant. myisamchk -e -i tbl_name Comme pour la commande précédente, mais l’option -i dit à myisamchk d’imprimer aussi quelques statistiques. 2. Comment réparer la table Le symptôme d’une table corrompue est généralement une rupture de requête inattendue, et vous pouvez voir, par exemple, ces erreurs : « tbl_name.frm » est verrouillé et ne peut pas être modifié. Impossible de trouver le fichier « tbl_name. MYI"(Errcode :###)。 Obtenez l’erreur ### du traitement de table (dans ce cas, l’erreur 135 est une exception). Fin inattendue du dossier. Les dossiers d’archives ont été détruits. Dans ces cas, vous devez réparer la table. myisamchk détecte et corrige généralement la plupart des problèmes possibles. Le processus de réparation se compose de jusqu’à 4 étapes, décrites ci-dessous. Avant de commencer, vous devriez télécharger les permissions du répertoire de base de données et des fichiers de checklist pour vous assurer qu’ils sont lisibles par les utilisateurs Unix utilisant mysqld (et vous, car vous avez besoin d’accéder au fichier que vous vérifiez). S’il refuse de modifier le fichier, ils doivent aussi être écrivables pour vous. Phase 1 : Vérifiez votre tableau Courir mon isamchk *. MYI ou (myisamchk -e *. Je le saurai, si tu as plus de temps). Utilisez l’option -s (silence) pour désactiver les informations inutiles.
Le format de fichier utilisé par MySQL pour stocker les données a été largement testé, mais il existe toujours des conditions externes pouvant corrompre les tables de la base de données : Le processus mysqld est arrêté en une seule écriture ; Un arrêt inattendu de l’ordinateur (par exemple, si l’ordinateur perd l’alimentation) ; Une erreur matérielle. Ce chapitre décrit comment vérifier et gérer la corruption des données dans une base MySQL. Si votre table est beaucoup abîmée, vous devriez essayer de comprendre pourquoi ! Voir G.1 Débogage d’un serveur MySQL. Lors de la récupération après plantage, il est important de comprendre que chaque table dans une base de données correspond tbl_name aux 3 fichiers du répertoire de la base de données |