Po prostu mi się to przydarzyło i po chwili znalazłem odpowiedź w artykule na blogu i chciałem ją również tutaj umieścić.
Jeśli skopiujesz katalog danych MySQL z /var/lib/mysql
do /path/to/new/dir
, ale skopiuj tylko foldery bazy danych (np. mysql
, wpdb
, ecommerce
, itp.) ORAZ masz tabele innodb, Twoje tabele innodb pojawią się w 'pokaż tabele', ale zapytania o nie (select
i describe
) zakończy się niepowodzeniem, z błędem Mysql error: table db.tableName doesn't exist
. Zobaczysz .frm
w katalogu db i zastanawiam się dlaczego.
W przypadku tabel innodb ważne jest, aby skopiować ib*
pliki, którymi w moim przypadku były ibdata1
, ib_logfile0
i ib_logfile1
. Gdy wykonałem transfer, upewniając się, że je skopiowałem, wszystko działało zgodnie z oczekiwaniami.
Jeśli twój plik my.cnf zawiera „innodb_file_per_table”, plik .ibd będzie obecny w katalogu db, ale nadal potrzebujesz plików ib*.