Das ist mir gerade passiert und nach einer Weile fand ich die Antwort in einem Blogartikel und wollte sie auch hier veröffentlichen.
Wenn Sie das MySQL-Datenverzeichnis aus /var/lib/mysql
kopieren nach /path/to/new/dir
, aber kopieren Sie nur die Datenbankordner (also mysql
, wpdb
, ecommerce
, etc) UND Sie haben Innodb-Tabellen, Ihre Innodb-Tabellen werden in 'show tables' angezeigt, aber Abfragen darauf (select
und describe
) schlägt mit dem Fehler Mysql error: table db.tableName doesn't exist
fehl . Sie sehen die .frm
Datei im db-Verzeichnis und frage mich warum.
Für innodb-Tabellen ist es wichtig, den ib*
zu kopieren Dateien, die in meinem Fall ibdata1
waren , ib_logfile0
und ib_logfile1
. Nachdem ich die Übertragung durchgeführt und diese kopiert hatte, funktionierte alles wie erwartet.
Wenn Ihre my.cnf-Datei "innodb_file_per_table" enthält, wird die .ibd-Datei im db-Verzeichnis vorhanden sein, aber Sie benötigen immer noch die ib*-Dateien.