È successo solo a me e dopo un po' ho trovato la risposta in un articolo del blog e volevo metterla anche qui.
Se copi la directory dei dati MySQL da /var/lib/mysql
a /path/to/new/dir
, ma copia solo le cartelle del database (ad esempio mysql
, wpdb
, ecommerce
, ecc.) E hai tabelle innodb, le tue tabelle innodb verranno visualizzate in "mostra tabelle" ma query su di esse (select
e describe
) fallirà, con l'errore Mysql error: table db.tableName doesn't exist
. Vedrai il .frm
file nella directory db e mi chiedo perché.
Per le tabelle innodb, è importante copiare su ib*
file, che nel mio caso erano ibdata1
, ib_logfile0
e ib_logfile1
. Dopo aver eseguito il trasferimento assicurandomi di copiarli, tutto ha funzionato come previsto.
Se il tuo file my.cnf contiene "innodb_file_per_table" il file .ibd sarà presente nella directory db ma hai ancora bisogno dei file ib*.