osCommerce Knowledge Base
1016 - Can't open file 'TABELLENNAME.MYI' (errno: 145) | Zuletzt aktualisiert: 15th May, 2004 Beitrag ID: 128 |
- Überblick
- Lösungsvorschlag
- Verweise zum Thema
Überblick
Folgende Fehlermeldung erscheint, wenn eine Tabelle der Datenbank -vermutlich aufgrund eines Absturzes- fehlerhaft ist, und auf sie weder zugegriffen noch von ihr gelesen werden kann:
1016 - Can't open file 'TABELLENNAME.MYI' (errno: 145)
Die Fehlermeldung wird so lange auftreten, bis die entsprechende Tabelle der Datenbank repariert wurde.
Lösungsvorschlag
Mit folgende Methoden ist es möglich, fehlerhafte Tabellen zu reparieren. Die Auswahl der Methode hängt davon ab, ob der Datenbankserver noch läuft (Methode 1) oder nicht (Methode 2).
- Methode 1: repair table SQL-Befehl
- Methode 2: myisamchk-Befehl
Die Zeichenkette TABELLENNAME muß in den folgenden Befehlen durch den Namen der Tabelle ersetzt werden, der in der Fehlermeldung angegeben wird.
Methode 1: repair table SQL-Befehl
Führen Sie den folgenden SQL-Befehl aus, wenn der Datenbankserver noch läuft:
repair table TABELLENNAME;
Dies können sie z.B. in phpMyAdmin im Menüpunkt SQL oder in der Kommandozeile des Servers mit dem mysql-Tool durchführen.
Methode 2: myisamchk-Befehl
Der myisamchk Befehl ist Bestandteil einer Standard-MySQL-Installation und kann ausgeführt werden, wenn der MySQL-Server nicht mehr läuft. Loggen Sie sich dazu (z.B. per SSH) auf ihren Server ein, und führen Sie anschließend in der Kommandozeile folgende Befehl aus:
myisamchk [OPTIONEN] /pfad/zum/datenbank/verzeichnis/TABELLENNAME.MYI
Die für Sie passenden Optionen entnehmen Sie der Online-Dokumentation von myisamchk oder dem folgenden Befehl:
myisamchk --help
Beim Autor dieses Artikels lautet der Pfad des Datenbankverzeichnisses /var/lib/mysql. Die myisamchk-Methode dürfte allerdings nur dann funktionieren, wenn Sie root-Zugriff auf den Server haben. Wenn dem nicht so ist, sollten Sie ihren Provider kontaktieren.
Verweise zum Thema
- MySQL Dokumentation: 8.1.3.1 Beschädigte MyISAM-Tabellen
- MySQL Documentation: 14.5.2.6 REPAIR TABLE-Syntax
- MySQL Documentation: 5.4.6.1 Aufrufsyntax von myisamchk


