Esto me acaba de pasar y después de un tiempo encontré la respuesta en un artículo de blog y quería ponerlo aquí también.
Si copia el directorio de datos de MySQL desde /var/lib/mysql
a /path/to/new/dir
, pero solo copie las carpetas de la base de datos (es decir, mysql
, wpdb
, ecommerce
, etc.) Y tiene tablas de innodb, sus tablas de innodb aparecerán en 'mostrar tablas' pero las consultará (select
y describe
) fallará, con el error Mysql error: table db.tableName doesn't exist
. Verás el .frm
en el directorio db y me pregunto por qué.
Para las tablas de innodb, es importante copiar sobre el ib*
archivos, que en mi caso eran ibdata1
, ib_logfile0
y ib_logfile1
. Una vez que hice la transferencia asegurándome de copiarlas, todo funcionó como se esperaba.
Si su archivo my.cnf contiene "innodb_file_per_table", el archivo .ibd estará presente en el directorio db pero aún necesitará los archivos ib*.