Ich habe den Datenverzeichnis einer MySQL-Installation geändert und alle Basen bis auf eine wurden korrekt verschoben. Ich kann mich verbinden und USEdie Datenbank. SHOW TABLESAußerdem werden mir alle Tabellen korrekt zurückgegeben, und die Dateien jeder Tabelle befinden sich im MySQL-Datenverzeichnis.
Wenn ich jedoch versuche, SELECTetwas 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 TABLESAussage anzeigen konnte.
Ich vermute, dass SHOW TABLESdie 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