Wie behebt man den MySQL-Datenbankfehler “Falsche Schlüsseldatei für Tabelle”?
Zusammenfassung: In diesem Blog wird der MySQL-Fehler "Falsche Schlüsseldatei für Tabelle" im Detail besprochen. Er beschreibt mögliche Ursachen für den Fehler und Lösungen, um sie zu beheben. Um den Fehler zu beheben, der durch beschädigte Tabellen verursacht wird, verwenden Sie die Software Stellar Repair for MySQL. Verwenden Sie die Demoversion der Software, um die Datenbank und ihre beschädigten Tabellen zu reparieren, und sehen Sie sich die wiederherstellbaren Tabellen an, um die Datenintegrität zu überprüfen.
Der MySQL-Fehler ‘Incorrect Key File for Table’ kann auftreten, wenn Sie eine große MySQL-Abfrage ausführen. Einige Benutzer haben zum Beispiel berichtet, dass sie diesen Fehler erhalten, wenn sie eine Abfrage ausführen, um Tausende von Datensätzen aus einer Tabelle mit mehr als einem JOIN zu holen.
Warum gibt MySQL beim Ausführen einer Abfrage den Fehler “Falsche Schlüsseldatei für Tabelle” zurück?
Die vollständige MySQL-Fehlermeldung “Incorrect key file for table ‘FILEPATH.MYI’; try to repair it” legt nahe, dass Sie versuchen können, den Schlüssel zu reparieren. Ein Blick auf Ihre Tabelle FILEPATH kann Ihnen helfen, mehr Details über den Fehler zu finden:
- Wenn der FILEPATH ähnlich aussieht wie ‘/tmp/#sql_xxxx.MYI‘, bedeutet dies, dass Ihre Abfrage eine große Ergebnismenge zurückgibt. Der/tmp -Ordner, in dem eine temporäre Tabelle mit der größeren Ergebnismenge gespeichert wird, ist zu klein für die Größe der Abfrage. Im Wesentlichen ist in Ihrem /tmp-Ordner nicht genügend Platz für die temporäre Tabelle vorhanden.
- Wenn Ihr FILEPATH den Namen der Datenbanktabelle enthält, ist es wahrscheinlich, dass Ihre Tabelle beschädigt ist.
Mögliche Ursachen für den MySQL-Fehler ‘Falsche Schlüsseldatei für Tabelle’ und ihre Lösungen
Möglicherweise tritt der Fehler aufgrund eines Speicherplatzproblems oder einer Beschädigung der MySQL-Tabelle auf. Lesen Sie weiter, um zu erfahren, wie Sie diese beiden Probleme beheben können.
Ursache 1 – Unzureichender Speicherplatz im temporären Ordner (/Tmp)
Hinweis: Der Fehler tritt nicht auf, wenn Sie einzelne Abfragen ausführen, aber er kann auftreten, wenn Sie große Abfragen gleichzeitig auf demselben MySQL-Server ausführen. |
Der Hauptgrund für die MySQL-Fehlermeldung “Falsche Schlüsseldatei” ist, dass Ihre Abfrage Daten abruft, die größer sind als Ihr /tmp-Ordner (d. h. der Ordner, in dem temporäre Tabellen gespeichert werden).
Lösung – Ändern Sie den Speicherort des Ordners ‘/temp’.
Zunächst müssen Sie feststellen, ob die Festplattenpartition voll ist, indem Sie die Größe Ihres /tmp-Ordners überprüfen. Führen Sie den Befehl df mit der Option “-h” aus, um die Festplattennutzung des Dateisystems in lesbarer Form zu überprüfen:
df -h
Wenn die Partition voll ist, ändern Sie den Speicherort des Ordners /tmp auf eine Festplatte mit ausreichend freiem Speicherplatz. Ändern Sie den Speicherort der Datei in der MySQL-Konfigurationsdatei (.cnf).
Manchmal ist der /tmp-Ordner zwar groß genug, aber er kann trotzdem voll werden. In diesem Fall müssen Sie den Platz im Ordner manuell freimachen.
Ursache 2 – Beschädigte Schlüssel oder Tabelle
Eine Beschädigung der Tabelle ist ein weiterer Grund, der zu dem Fehler “Falsche Schlüsseldatei für Tabelle” führen kann.
Lösung – Die beschädigte Tabelle neu erstellen oder reparieren
Um das Problem zu beheben, löschen/erstellen Sie die beschädigte Tabelle und fügen Sie die Daten erneut ein.
In der folgenden Abfrage wird beispielsweise die Operation “DELETE” verwendet, um die Tabelle zu löschen, und der Befehl “OPTIMIZE” TABLE wird anschließend verwendet, um Speicherplatz freizugeben.
mysql> DELETE tbl_name WHERE id < 200000;
mysql> OPTIMIZE TABLE tbl_name;
Wenn Sie die Daten nicht wieder einfügen können, versuchen Sie, die Tabelle zu reparieren. Bei MyISAM-Tabellen können Sie den Befehl “REPAIR table” verwenden, um die Beschädigung zu beheben:
REPAIR TABLE tbl_name USE_FRM;
Dieser Befehl funktioniert nur bei MyISAM-Tabellen. Um Tabellen mit der InnoDB-Datenbank-Engine zu reparieren, lesen Sie die besten Methoden, um eine InnoDB-Tabellenbeschädigung in MySQL zu reparieren. Das Ausführen eines Reparaturbefehls für jede der Tabellen in der Abfrage kann jedoch ein langwieriger und zeitraubender Prozess sein.
Was können Sie sonst noch tun, um beschädigte Tabellen zu reparieren?
Verwenden Sie Stellar Repair for MySQL Software, um beschädigte Tabellen zu reparieren. Die Software hilft, MySQL-Datenbank und alle seine Objekte schnell in nur ein paar Klicks zu reparieren. Sie stellt alle Daten aus der beschädigten Datenbank ohne Datenverlust wieder her.
Schlussfolgerung
Wenn der MySQL-Fehler “Falsche Schlüsseldatei für Tabelle” auftritt, sollten Sie als Erstes den Speicherort des /tmp-Ordners überprüfen, um sicherzustellen, dass er über genügend Speicherplatz für temporäre Tabellen verfügt. Wenn dies nicht der Fall ist, ändern Sie den Speicherort des Ordners auf eine Festplatte mit ausreichend freiem Speicherplatz. Wenn es keine Probleme mit dem Speicherplatz gibt, ist die Wahrscheinlichkeit groß, dass Ihre Datenbanktabelle beschädigt ist und repariert werden muss. Wenn Sie die Tabelle nicht manuell reparieren können, können Sie die MySQL-Datenbankreparatursoftware verwenden.