
Es passiert selten, aber es kann vorkommen: Bei einer Datenbankaktion wie etwa dem Speichern eines Datensatzes erscheint die folgende MySQL-Fehlermeldung, im schlimmsten Fall ist die ganze Website nicht mehr erreichbar:
ERROR: Table 'TABELLENNAME' is marked as crashed and should be repaired
Erstmal keine Panik (dazu ist später noch genug Zeit

). Oft kann das Problem recht einfach behoben werden.
Die Ursache:
Das Problem tritt bei MyISAM-Tabellen auf. Die Ursache ist meist nicht auf die Schnelle feststellbar, eventuell trat ein Serverfehler auf. Leider hat man im Shared Hosting Bereich in der Regel keinen Zugriff auf detaillierte MySQL-Fehlerprotokolle. Tritt der Fehler öfters und bei mehreren Anwendungen auf, kann evtl. eine Anfrage beim Hoster Klarheit bringen.
1. Tipps zur Behebung in phpMyAdmin:
Die MySQL-Verwaltungsoberfläche phpMyAdmin stellt mehrere Möglichkeiten zum Reparieren defekter Tabellen zur Verfügung. In jedem Fall empfehle ich vor der Reparatur ein Backup der Tabelle und/oder der kompletten Datenbank.
• 1. Variante
In der
Tabellenübersicht von phpMyAdmin die defekte Tabelle per Checkbox markieren und ganz unten in der Auswahlbox "Repariere Tabelle" auswählen. Der Reparaturvorgang startet.
• 2. Variante
In der
linken Spalte der Datenbank die defekte Tabelle anklicken, in der Tabelle den Reiter "SQL" anwählen, im Textfeld den Befehl zum Reparieren direkt eingeben und per "OK" ausführen:
REPAIR TABLE `TABELLENNAME`
• 3. Variante
Falls kein direkter Zugriff auf die Tabelle möglich ist, in der
Tabellenübersicht den Reiter "SQL" anwählen, hier den Befehl zum Reparieren eingeben und per "OK" ausführen:
REPAIR TABLE `TABELLENNAME`
Anschließend zeigt phpMyAdmin das Ergebnis. Hat alles geklappt, sieht dies so aus:
Tipp: Einzelne Tabellen lassen sich auch nur überprüfen, ohne gleich den Reparaturvorgang zu starten. Dabei kommt folgender SQL-Befehl zum Einsatz:
CHECK TABLE `TABELLENNAME`
2. Reparatur über die Shell:
Auf Wunsch kann die Reparatur auch über die Shell erfolgen. Dies kann in besonders hartnäckigen Fällen notwendig sein, da hier mehr Optionen zur Verfügung stehen. Der Befehl dazu lautet:
Alle Details und Optionen auf mysql.com:
Verwendung von myisamchk (englisch)
Fertig! In den meisten Fällen sollte die betroffene Tabelle nun wieder funktionieren. Hilft alles nichts, kann wahrscheinlich nur noch ein (hoffentlich vorhandenes) Backup der Tabelle oder der gesamten Datenbank Abhilfe bringen.
Erweiterte Tipps zum Reparieren stellt mysql.com zur Verfügung (englisch):
Infos zu
myisamchk
Infos zu
REPAIR TABLE