sql >> Base de Datos >  >> RDS >> Mysql

MySQL Table no existe error, pero existe

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*.