Právě se mi to stalo a po chvíli jsem našel odpověď v článku na blogu a chtěl jsem ji sem dát také.
Pokud zkopírujete datový adresář MySQL z /var/lib/mysql
do /path/to/new/dir
, ale zkopírujte pouze složky databáze (tj. mysql
, wpdb
, ecommerce
, atd.) A máte tabulky innodb, vaše tabulky innodb se zobrazí v 'show tables', ale budou se na ně dotazovat (select
a describe
) se nezdaří s chybou Mysql error: table db.tableName doesn't exist
. Zobrazí se .frm
soubor v adresáři db a divíte se proč.
U tabulek innodb je důležité zkopírovat ib*
soubory, což v mém případě byly ibdata1
, ib_logfile0
a ib_logfile1
. Jakmile jsem provedl přenos a ujistil se, že je zkopíruji, vše fungovalo podle očekávání.
Pokud váš soubor my.cnf obsahuje "innodb_file_per_table", soubor .ibd bude přítomen v adresáři db, ale stále potřebujete soubory ib*.