MySQL table not exist, wird aber angezeigt

Andi79

New Member
Ich habe ein seltsames Problem. Datenbank InnoDB auf MySQL 5.7

show tables zeigt mir alle Datenbanken, ein select * from tabelle die aber bei show tables angezeigt wird sagt er table doesn't exists.
Entstanden ist das Problem vermutlich als der Server nach einem Crash aus dem Backup auf dateibasis wiederhergestellt wurde, leider
lief ansonst und das ausmaß des Problems wurde erst jetzt bemerkt da diese eine Anwendung reaktiviert werden sollte. SQL Dumps
wurden inzwischen überschrieben so dass die Datenbank irgendwie wieder laufen muss. Gibt es sonst noch möglichkeiten die daten irgendwie aus den Dateien zu extrahieren?
 

marce

Well-Known Member
Kommt vermutlich darauf an, wie die Konfig des Servers aussah, wie viel darauf inzwischen passiert ist und ob alle Versionen übereinstimmen. Viel Hoffnung würde ich mir aber nicht machen.

was sagen denn die Logs? Und poste bitte mal konkrete Befehle und deren Ausgaben...
 

danton

Debian User
Erst einmal die Begrifflichkeiten klären: SHOW TABLES zeigt die die Tabellen innerhalb einer Datenbank an, um die Datenbanken aufzulisten, wäre SHOW DATABASES der korrekte Befehl. Hast du mit USE dbname in die richtige Datenbank gewechselt und dann den SELECT * FROM tabelle ausgeführt? Kommt der Fehler auch, wenn du SELECT * FROM dbname.tabelle ausführst?
Davon ausgehend, dass es kein Fehler in deiner SQL-Abfrage ist: Falls du die Konfiguration innodb_file_per_table=ON verwendest (was in den meisten Fällen auch sinnvoll ist), dann solltest du unter /var/lib/mysql ein Verzeichnis für die Datenbank haben und darin eine Datei tabelle.ibd - möglicherweise ist die beim Restore nicht mit wiederhergestellt worden. Dann noch mal das Backup bemühen und hoffen, dass es nur ein Restore-Fehler war.
 
Top