MySQL-Datenverzeichnisänderung: Tabelle existiert, ist aber nicht zugänglich
Als Reaktion auf das verwirrende Problem, dass eine Tabelle in SHOW TABLES erscheint, aber einen Existenzfehler zurückgibt Beim Zugriff wurde eine Lösung gefunden.
Nach der Verschiebung des MySQL-Datenverzeichnisses zeigte eine bestimmte Datenbank dies an Anomalie. Trotz erfolgreicher Verbindung und Auflistung der Tabellen in der Datenbank mithilfe von SHOW TABLES führten Versuche, Daten abzurufen, zur Fehlermeldung „Tabelle 'Datenbank.TABLE_ONE' existiert nicht.“
Die anfänglichen Spekulationen führten das Verhalten auf SHOW zurück TABLES überprüft nur die Dateiexistenz, ohne die Dateiintegrität zu validieren. Es wurde jedoch eine andere Ursache identifiziert.
Beim direkten Kopieren eines Datenbankverzeichnisses mit dem Befehl „cp -r /path/to/my/database /var/lib/mysql/new_database“ tritt dieses Problem auf. Wenn die Datenbank InnoDB-Tabellen verwendet, tritt dieser spezifische Fehler auf.
Die Lösung besteht darin, sicherzustellen, dass die ib*-Dateien (z. B. ibdata1, ib_logfile0, ib_logfile1) im Stammverzeichnis des MySQL-Datenverzeichnisses vorhanden sind. Nach dem Kopieren dieser wichtigen Dateien ist das Problem der Unzugänglichkeit behoben und der Tabellenzugriff wird wiederhergestellt.
Das obige ist der detaillierte Inhalt vonMySQL-Datenverzeichnis verschoben: Warum zeigt SHOW TABLES eine Tabelle an, die nicht existiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!