Si vous utilisez mysqld avec l'option
          --skip-external-locking (qui est la
          configuration par défaut pour certains systèmes, comme
          Linux), vous ne pouvez pas utiliser
          myisamchk pour vérifier une table, lorsque
          mysqld utilise aussi la table. Si vous
          pouvez être sûr que personne n'utilise cette table via
          mysqld lorsque vous utilisez
          myisamchk, vous n'aurez qu'à utiliser la
          commande mysqladmin flush-tables avant de
          commencer à vérifier les tables. Si vous ne pouvez pas
          garantir cette condition, vous devez alors éteindre le
          serveur mysqld pour vérifier les tables.
          Si vous exécutez myisamchk alors que
          mysqld modifie la table, vous pourriez
          obtenir un diagnostic de corruption de la table, alors que ce
          n'est pas le cas.
        
          Si vous n'utilisez pas l'option
          --skip-external-locking, vous pouvez vous
          servir de myisamchk pour vérifier les
          tables à tout moment. Pendant que vous le faites, les autres
          clients qui tentent de modifier la table devront attendre que
          myisamchk ait fini.
        
          Si vous utilisez myisamchk pour réparer ou
          optimiser les tables, vous devez toujours
          vous assurer que mysqld n'utilise pas cette
          table (ce qui s'applique aussi si vous utilisez
          --skip-external-locking). Si vous n'éteignez
          pas le serveur mysqld, vous devez au moins
          utiliser mysqladmin flush-tables avant de
          lancer myisamchk. Vos tables
          peuvent être corrompues si le serveur et
          myisamchk travaillent dans une même table
          simultanément.
        
Ce chapitre décrit comment vérifier et gérer les corruptions de données dans les bases MySQL. Si vos tables sont fréquemment corrompues, vous devriez commencer par en rechercher la raison ! See Section A.4.2, « Que faire si MySQL plante constamment ? ».
          La section sur les tables MyISAM contient
          différentes raisons pour lesquelles une table peut être
          corrompue. See Section 14.1.4, « Problèmes avec les tables MyISAM ».
        
          Lorsque vous effectuez une restauration de table, il est
          important que chaque table tbl_name dans
          une base corresponde aux trois fichiers dans le dossier de
          base, du dossier de données :
        
| Fichier | Utilisation | 
tbl_name.frm | 
Définition de la table | 
tbl_name.MYD | 
Fichier de données | 
tbl_name.MYI | 
Fichier d'index | 
Chacun de ces trois fichiers est sujet à des corruptions diverses, mais les problèmes surviennent généralement dans les fichiers de données ou d'index.
          myisamchk fonctionne en créant une copie
          du fichier .MYD (les données), ligne par
          ligne. Il termine sa réparation en supprimant l'ancien
          fichier .MYD et en renommant le nouveau
          à la place de l'ancien. Si vous utilisez l'option
          --quick, myisamchk ne
          crée pas de fichier temporaire .MYD mais
          suppose plutôt que le fichier .MYD est
          correct et il génère simplement un nouveau fichier d'index
          sans toucher au fichier .MYD. C'est une
          méthode sécuritaire, car myisamchk va
          automatiquement détecter si le fichier
          .MYD est corrompu, et annulera alors la
          réparation si c'est le cas. Vous pouvez aussi ajouter deux
          options --quick à
          myisamchk. Dans ce cas,
          myisamchk ne s'interrompt pas sur certaines
          erreurs (comme des clés doublons), et essaie de résoudre ce
          problème en modifiant le fichier .MYD.
          Normalement, l'utilisation de deux options
          --quick n'est utile que si vous n'avez pas
          trop d'espace disque pour réaliser la réparation. Dans ce
          cas, vous devez au moins faire une copie de sauvegarde avant
          d'utiliser myisamchk.
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
