Dieser Abschnitt beschreibt, wie Sie MySQL-Datenbanken auf beschädigte Daten überprüfen und mit diesen ggf. verfahren können. Wenn Ihre Tabellen häufig beschädigt werden, sollten Sie die Ursache hierfür ermitteln. Siehe auch Abschnitt A.4.2, „Was zu tun ist, wenn MySQL andauernd abstürzt“.
          Eine Erklärung, wie Schäden an
          MyISAM-Tabellen auftreten können, finden
          Sie in Abschnitt 14.1.4, „MyISAM-Tabellenprobleme“.
        
Wenn Sie mysqld mit deaktivierter externer Sperre ausführen (was ab MySQL 4.0 das Standardverhalten ist), dann können Sie myisamchk nicht für das zuverlässige Überprüfen einer Tabelle verwenden, wenn mysqld genau diese Tabelle benutzt. Wenn Sie ganz sicher sind, dass niemand über mysqld auf die Tabellen zugreifen kann, während Sie myisamchk ausführen, müssen Sie lediglich mysqladmin flush-tables ausführen, bevor Sie die Überprüfung der Tabellen starten. Können Sie dies nicht gewährleisten, dann müssen Sie mysqld stoppen, solange Sie die Tabellen überprüfen. Führen Sie myisamchk zur Überprüfung von Tabellen aus, die gleichzeitig von mysqld aktualisiert werden, dann erhalten Sie unter Umständen eine Warnung, dass eine Tabelle beschädigt sei, obwohl dies gar nicht stimmt.
Wenn der Server mit aktivierter externer Sperrung ausgeführt wird, können Sie die Tabellen jederzeit mit myisamchk überprüfen. In diesem Fall muss der Server, wenn er eine Tabelle zu aktualisieren versucht, die myisamchk gerade verwendet, warten, bis myisamchk den Vorgang abgeschlossen hat, bevor er fortfährt.
Verwenden Sie myisamchk zur Reparatur oder Optimierung von Tabellen, dann müssen Sie immer sicherstellen, dass der Server mysqld die Tabelle nicht verwendet. (Dies gilt auch bei deaktivierter externer Sperrung.) Beenden Sie mysqld nicht, dann sollten Sie zumindest mysqladmin flush-tables ausführen, bevor Sie myisamchk starten. Wenn der Server und myisamchk gleichzeitig auf die Tabellen zugreifen, können Ihre Tabellen beschädigt werden.
          Wenn Sie eine Wiederherstellung nach einem Absturz
          durchführen, müssen Sie beachten, dass zu jeder
          MyISAM-Tabelle
          tbl_name in einer Datenbank drei
          Dateien im Datenbankverzeichnis gehören:
        
| Datei | Zweck | 
|  | Definitionsdatei (Formatdatei) | 
|  | Datendatei | 
|  | Indexdatei | 
Jeder dieser drei Dateitypen kann auf unterschiedliche Weise beschädigt werden, meistens treten Probleme aber in Zusammenhang mit Daten- und Indexdateien auf.
          myisamchk erstellt datensatzweise eine
          Kopie der .MYD-Datendatei. Die Reparatur
          wird beendet, indem die alte .MYD-Datei
          entfernt und der neuen Daten dann der ursprüngliche Dateiname
          zugewiesen wird. Wenn Sie --quick verwenden,
          erstellt myisamchk keine temporäre
          .MYD-Datei, sondern setzt stattdessen
          voraus, dass die .MYD-Datei korrekt ist,
          und erstellt nur eine neue Indexdatei – die vorhandene
          .MYD-Datei wird nicht angerührt. Dies
          ist sicher, da myisamchk automatisch
          erkennt, ob die .MYD-Datei beschädigt
          ist (in diesem Fall wird diese Reparatur abgebrochen). Sie
          können für myisamchk auch zweimal die
          Option --quick angeben. In diesem Fall bricht
          myisamchk bei einigen Fehlern (z. B.
          Schlüsseldubletten) nicht ab, sondern versucht diese zu
          beheben, indem die .MYD-Datei modifiziert
          wird. Normalerweise ist die Verwendung zweier
          --quick-Optionen nur dann sinnvoll, wenn zu
          wenig freier Festplattenspeicher für eine normale Reparatur
          vorhanden ist. In diesem Fall sollten Sie zumindest ein Backup
          der Tabelle erstellen, bevor Sie myisamchk
          ausführen.
        
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

