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.