Auch wenn das MyISAM-Tabellenformat sehr zuverlässig ist (alle von einer SQL-Anweisung an der Tabelle vorgenommenen Änderungen werden geschrieben, bevor die Anweisung zurückkehrt), kann es dennoch zu einer beschädigten Tabelle kommen, wenn eines der folgenden Ereignisse eintritt:
· Der mysqld-Prozess wird abgebrochen mitten im Schreiben.
· Es kommt zu einem unerwarteten Herunterfahren des Computers (der Computer wird beispielsweise heruntergefahren).
· Hardwarefehler.
· Sie können externe Programme (z. B. myisamchk) für Tabellen verwenden, die gleichzeitig vom Server geändert werden.
· Softwarefehler im MySQL- oder MyISAM-Code.
Typische Symptome einer beschädigten Tabelle sind:
· Beim Auswählen von Daten aus der Tabelle erhalten Sie die folgende Fehlermeldung:
· Falsche Schlüsseldatei für die Tabelle: „...“ Versuchen Sie, sie zu reparieren.
· Die Abfrage kann die Zeile in der Tabelle nicht finden unvollständige Daten zurückgeben.
Mit der CHECK TABLE-Anweisung können Sie den Zustand einer MyISAM-Tabelle überprüfen und mit REPAIR TABLE eine beschädigte MyISAM-Tabelle reparieren. Wenn mysqld nicht ausgeführt wird, können Sie auch den Befehl myisamchk verwenden, um eine Tabelle zu überprüfen oder zu reparieren.
Wenn Ihre Tabelle häufig beschädigt wird, sollten Sie versuchen, den Grund dafür zu ermitteln. Am wichtigsten ist es zu verstehen, ob die Tabelle durch den Serverabsturz beschädigt wurde. Sie können dies frühzeitig überprüfen, indem Sie im Fehlerprotokoll nach der zuletzt neu gestarteten mysqld-Nachricht suchen. Wenn eine solche Meldung vorhanden ist, ist es sehr wahrscheinlich, dass die Tabellenbeschädigung auf den Ausfall des Servers zurückzuführen ist. Andernfalls kann es im Normalbetrieb zu Schäden kommen. Das ist ein Fehler. Sie sollten versuchen, einen reproduzierbaren Testfall zu erstellen, der dieses Problem demonstriert.