Ich habe den Datenverzeichnis einer MySQL-Installation geändert und alle Basen bis auf eine wurden korrekt verschoben. Ich kann mich verbinden und USE
die Datenbank. SHOW TABLES
Außerdem werden mir alle Tabellen korrekt zurückgegeben, und die Dateien jeder Tabelle befinden sich im MySQL-Datenverzeichnis.
Wenn ich jedoch versuche, SELECT
etwas aus der Tabelle zu entfernen, wird die Fehlermeldung angezeigt, dass die Tabelle nicht vorhanden ist. Dies ist jedoch nicht sinnvoll, da ich dieselbe Tabelle durch SHOW TABLES
Aussage anzeigen konnte.
Ich vermute, dass SHOW TABLES
die Existenz von Dateien aufgelistet wird, aber nicht überprüft wird, ob eine Datei beschädigt ist oder nicht. Folglich kann ich diese Dateien auflisten, aber nicht darauf zugreifen.
Trotzdem ist es nur eine Vermutung. Ich habe das noch nie gesehen. Jetzt kann ich die Datenbank nicht zum Testen neu starten, aber jede andere Anwendung, die sie verwendet, läuft einwandfrei. Aber das ist nur eine Vermutung, das habe ich noch nie gesehen.
Weiß jemand, warum das passiert?
Beispiel:
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database |
+-----------------------+
| TABLE_ONE |
| TABLE_TWO |
| TABLE_THREE |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist