Zusammenfassung: Dieser Artikel listet einige der häufigsten Fehler auf, auf die Sie stoßen können, wenn eine MySQL-Tabelle beschädigt wird. Es beschreibt auch die möglichen Gründe für die Beschädigung der MySQL-Datenbanktabelle. Der Artikel erklärt auch, was Sie tun können, um beschädigte Tabellen zu reparieren, und wie eine MySQL-Datenbank-Reparatursoftware nützlich sein kann, um Daten in der Tabelle und allen anderen Datenbankobjekten wiederherzustellen.
Als Benutzer einer MySQL-Datenbank können Sie auf einen dieser Fehler stoßen:
- „Tabelle ist als abgestürzt markiert und sollte repariert werden“
- „Tabelle ist abgestürzt und letzte Reparatur fehlgeschlagen“
- „Tabelle tbl_name existiert nicht“
- „Falsche Schlüsseldatei für Tabelle:‚…‘. Versuchen Sie es zu reparieren“ usw.
Dies sind Warnzeichen dafür, dass Ihre MySQL-Tabelle beschädigt ist.
Was verursacht eine Beschädigung in der MySQL-Datenbanktabelle?
Im Folgenden sind mögliche Gründe aufgeführt, die zu einer Beschädigung der MySQL-Datenbanktabelle führen:
- Probleme in der zugrunde liegenden Plattform, die von MySQL verwendet wird, einschließlich Disk-Subsystem, Treiber, Controller usw.
- Abruptes Herunterfahren des Systems oder Serverabsturz
- Der MySQL-Prozess wird während des Schreibens in die Datenbank abgebrochen
- Softwarefehler oder Hardwarefehler
Wenn Sie auf einen dieser MySQL-Korruptionsfehler stoßen, können die Daten in den Tabellen unzugänglich werden. Lassen Sie uns die Lösungen besprechen, um die beschädigten Tabellen zu reparieren.
Wie behebt man MySQL-Datenbankbeschädigungsfehler?
Wenn Sie über eine aktualisierte Sicherung Ihrer Datenbank verfügen, stellen Sie die Datenbank aus der Sicherung wieder her, um die unzugänglichen Tabellendaten wiederherzustellen. Wenn die Sicherung nicht verfügbar ist, führen Sie die Schritte in der folgenden Reihenfolge aus, um beschädigte MySQL-Tabellen zu reparieren und Daten wiederherzustellen:
Hinweis: Erstellen Sie eine Sicherungskopie Ihrer MySQL-Datenbank und -Tabellen, um weitere Schäden während des Reparatur- und Wiederherstellungsprozesses zu vermeiden.
Schritt 1:Tabelle auf Fehler prüfen
Zuerst müssen Sie die Datenbanktabelle auf Beschädigungsfehler überprüfen. Sie können die PRÜFTABELLE verwenden Befehl zur Diagnose beschädigter InnoDB- und MyISAM-Tabellen:
CHECK TABLE tbl_name-Option; |
Ersetzen Sie hier „tbl_name“ durch den Namen der beschädigten Datenbanktabelle. Ersetzen Sie „Option“ durch eine der folgenden Optionen:SCHNELL, SCHNELL, MITTEL, ERWEITERT und GEÄNDERT.
Option | Beschreibung |
SCHNELL | Führt eine schnellere Reparatur von InnoDB- und MyISAM-Tabellen durch. Überspringt das Durchsuchen der Zeilen, um nach falschen Verknüpfungen zu suchen |
SCHNELL | Überprüfen Sie nur MyISAM-Tabellen, die nicht ordnungsgemäß geschlossen wurden. Nicht auf InnoDB-Tabellen anwenden. |
GEÄNDERT | Prüfen Sie nur MyISAM-Tabellen, die seit der letzten Prüfung nicht geschlossen wurden. Nicht auf InnoDB-Tabellen anwenden. |
MITTEL | Überprüfen Sie, ob die gelöschten Links gültig sind, indem Sie die Zeilen scannen. Gilt nur für MyISAM-Tabellen. |
ERWEITERT | Führt eine vollständige Schlüsselsuche für alle Schlüssel für jede Zeile der MyISAM-Tabelle durch. Die Ausführung dauert lange. |
Verwenden Sie den folgenden Befehl, um mehr als eine Tabelle auf Beschädigung zu prüfen:
CHECK TABLE tbl_name1, tbl_name2, tbl_name 3 option; |
Hinweis: Der Befehl CHECK TABLE kann nur verwendet werden, wenn der MySQL-Prozess läuft. Wenn der Prozess/Server jedoch nicht läuft, können Sie den folgenden „myisamchk“-Befehl verwenden, um MyISAM-Tabellen auf Beschädigungen zu überprüfen:
myisamchk [Optionen] tbl_name …
Dieser Befehl prüft eine einzelne Tabelle.
Führen Sie den folgenden Befehl aus, um alle Tabellen in der MySQL-Datenbank auf Beschädigung zu prüfen:
myisamchk /path/to/datadir/*/*.MYI
Das Dienstprogramm myisamchk funktioniert nicht für InnoDB-Tabellen.
Schritt 2:Beschädigte Tabelle reparieren
Hinweis: Der Befehl myisamchk gilt nur für MyISAM-Tabellen und funktioniert nicht für InnoDB-Tabellen. Zum Reparieren und Wiederherstellen einer Innodb-Tabelle fahren Sie mit Schritt 3 fort.
Das Dienstprogramm myisamchk kann auch dabei helfen, eine beschädigte (beschädigte) MyISAM-Tabelle zu reparieren. Gehen Sie wie folgt vor, um das Dienstprogramm zum Reparieren der beschädigten Tabelle zu verwenden:
- Halten Sie den MySQL-Dienst an, indem Sie Folgendes eingeben:
mysqld-Dienst stoppen cd /var/lib/mysql |
- Wechseln Sie in das Verzeichnis, in dem sich die Datenbank befindet.
cd /var/lib/mysql/table_name
myisamchk
Um Beschädigungen in InnoDB-Tabellen zu beheben, verwenden Sie ‘innodb_force_recovery’ Möglichkeit. Diese Option erzwingt den Start der InnoDB-Datenbank-Engine ohne Hintergrundoperationen, wodurch Sie Ihre Tabellen sichern können.
innodb_force_recovery=1
Service-Mysql-Neustart
Sie können innodb_force_recovery mit einem Wert von 1 starten und den Wert nach Bedarf erhöhen. Nachdem Sie die Innodb-Wiederherstellung initiiert haben, starten Sie Ihren MySQL-Server neu und sichern Sie dann Ihre Tabellen. In einigen Situationen müssen Sie den Wert jedoch möglicherweise auf 4 bis 6 setzen, wodurch die Daten beschädigt werden können.
Achtung! Wenn Sie die Tabellen mit einem Wert innodb_force_recovery=3 oder weniger sichern können, können Sie den Wiederherstellungsprozess sicher durchführen. Das Festlegen von innodb_force_recovery auf einen Wert größer als 4 birgt jedoch ein Datenverlustrisiko.
rm -rf
Wenn Sie diese Schritte ausführen, werden die MySQL-Datenbank und ihre Tabellen wiederhergestellt. Wenn die Daten immer noch fehlen, müssen Sie eine professionelle MySQL-Datenbank-Reparatursoftware wie Stellar Repair for MySQL verwenden um Ihre Datenbank wiederherzustellen und ihre Daten wiederherzustellen. Die Software kann sowohl InnoDB- als auch MyISAM-Tabellen reparieren, wobei die Daten intakt bleiben. Es unterstützt die Reparatur von MySQL-Tabellen sowohl auf Windows- als auch auf Linux-Systemen.
MySQL-Datenbanktabellen können durch plötzliches Herunterfahren des Systems, Serverabsturz, Hardwarefehler, Fehler im MySQL-Code usw. beschädigt werden. Eine Beschädigung der MySQL-Tabelle führt zu den in diesem Artikel aufgeführten Fehlern. Sie können versuchen, beschädigte MyISAM-Tabellen mit dem Dienstprogramm „myisamchk“ zu reparieren oder die Wiederherstellung von InnoDB zu erzwingen. Es kann jedoch viel Zeit in Anspruch nehmen, MyISAM-Tabellen zu reparieren und eine InnoDB-Wiederherstellung manuell durchzuführen. Außerdem kann der manuelle Wiederherstellungsprozess zu Datenverlust führen. Eine bessere Alternative ist die Verwendung der Software Stellar Repair for MySQL. Die Software ermöglicht das Reparieren von sowohl MyISAM- als auch InnoDB-Datenbanktabellen, ohne Änderungen an den Originaldaten vorzunehmen. |