"tbl_name.frm" Tabellendefinition (Tabelle) Datei "tbl_name. MYD "Datendatei" tbl_name. MYI"-Indexdatei Jeder dieser drei Dateitypen kann unter unterschiedlichen Formen von Beschädigung leiden, aber das Problem tritt am häufigsten bei Datendateien und Indexdateien auf. myisamchk erzeugt ein ". MYD" (Daten-)Datei funktioniert, funktioniert es, indem man die alte ". MYD-Datei und benenne die neue Datei in den ursprünglichen Dateinamen, um die Reparaturphase zu beenden. Wenn du --quick benutzt, erzeugt myisamchk kein temporäres ". MYD"-Datei, nur angenommen". MYD"-Datei korrekt ist und erstellt nur eine neue Indexdatei, ohne sie zu berühren". MYD"-Datei, was sicher ist, weil myisamchk automatisch erkennt". MYD"-Datei beschädigt ist und in diesem Fall die Reparatur abgebrochen wird. Du kannst myisamchk auch zwei Optionen geben – schnelle Optionen. In diesem Fall gibt myisamchk bei einigen Fehlern (wie wiederholenden Tasten) nicht auf, sondern versucht stattdessen, das ". MYD"-Datei, um sie zu lösen. In der Regel ist es nur nützlich, wenn man eine normale Lösung für zu wenig freien Speicherplatz implementiert, indem man die beiden Schnelloptionen verwendet. In diesem Fall solltest du zumindest ein Backup machen, bevor du Myisamchk spielst. 1. Wie man die Fehler in der Tabelle überprüft Um eine Tabelle zu überprüfen, verwenden Sie folgenden Befehl: Myisamchk tbl_name Dies erfasst 99,99 % aller Fehler. Was es nicht herausfinden kann, ist, dass Korruption nur in Datendateien vorkommt (was ungewöhnlich ist). Wenn du eine Tabelle überprüfen willst, solltest du myisamchk normalerweise ohne Option ausführen oder entweder die -s oder --stille Optionen verwenden. myisamchk -e tbl_name Es führt eine vollständig gründliche Datenprüfung durch (-e bedeutet "erweiterte Prüfung"). Es führt eine Leseprüfung pro Taste bei jeder Zeile durch, um zu bestätigen, dass sie auf die richtige Zeile zeigen. Das kann auf einem großen Tisch mit vielen Schlüsseln lange dauern. Myisamchk hört normalerweise auf, sobald der erste Fehler gefunden wird. Wenn du mehr Informationen möchtest, kannst du die Option --wortreich(-v) hinzufügen. Dadurch bleibt Myisamchk bis zu maximal 20 Fehlern fort. Im allgemeinen Gebrauch reicht ein einfaches myisamchk (ohne Argumente außer dem Tabellennamen) aus. myisamchk -e -i tbl_name Wie beim vorherigen Befehl, aber die -i-Option sagt myisamchk, dass er auch einige Statistiken ausdrucken soll. 2. Wie man den Tisch repariert Das Symptom einer beschädigten Tabelle ist meist ein unerwarteter Abfrageunterbrechung, und Sie können zum Beispiel folgende Fehler sehen: "tbl_name.frm" ist gesperrt und kann nicht geändert werden. Die Akte "tbl_name" nicht gefunden. MYI"(Errcode :### )。 Erhalten Sie Fehler ### vom Tabellenprozessor (in diesem Fall ist Fehler 135 eine Ausnahme). Unerwartete Akte beendet. Aktenakten wurden vernichtet. In solchen Fällen müssen Sie den Tisch reparieren. Myisamchk erkennt und behebt normalerweise die meisten Probleme, die schiefgehen. Der Reparaturprozess besteht aus bis zu 4 Stufen, die unten beschrieben werden. Bevor du beginnst, solltest du Berechtigungen für das Datenbankverzeichnis und Checklistendateien abschließen, damit sie für Unix-Nutzer, die mysqld ausführen, lesbar sind (und für dich, da du Zugriff auf die Datei brauchst, die du prüfst). Wenn es sich weigert, die Akte zu ändern, müssen sie Ihnen ebenfalls schriftlich zugänglich sein. Phase 1: Überprüfen Sie Ihren Tisch Lauf myisamchk *. MYI oder (myisamchk -e *. MYI, wenn du mehr Zeit hast). Verwenden Sie die -s (Stille)-Option, um unnötige Informationen zu deaktivieren.
Das von MySQL verwendete Dateiformat zur Datenspeicherung wurde umfassend getestet, aber es gibt immer externe Bedingungen, die zu einer Beschädigung von Datenbanktabellen führen können: der mysqld-Prozess wird bei einem Schreiben beendet; Ein unerwarteter Ausfall des Computers (zum Beispiel wenn der Computer Strom ausfällt); Ein Hardwarefehler. Dieses Kapitel beschreibt, wie man Datenkorruption in einer MySQL-Datenbank überprüft und damit umgeht. Wenn Ihr Tisch stark beschädigt ist, sollten Sie versuchen herauszufinden, warum! Siehe G.1 Debugging eines MySQL-Servers. Bei der Durchführung der Absturzwiederherstellung ist es wichtig zu verstehen, dass jede Tabelle in einer Datenbank tbl_name den 3 Dateien im Datenbankverzeichnis entspricht |