Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A tabela MySQL não existe erro, mas existe


Isso acabou de acontecer comigo e depois de um tempo encontrei a resposta em um artigo do blog e queria colocá-la aqui também.

Se você copiar o diretório de dados MySQL de /var/lib/mysql para /path/to/new/dir , mas apenas copie as pastas do banco de dados (ou seja, mysql , wpdb , ecommerce , etc) E você tem tabelas innodb, suas tabelas innodb aparecerão em 'show tables', mas as consultas nelas (select e describe ) falhará, com o erro Mysql error: table db.tableName doesn't exist . Você verá o .frm arquivo no diretório db e me pergunto por quê.

Para tabelas innodb, é importante copiar o ib* arquivos, que no meu caso eram ibdata1 , ib_logfile0 e ib_logfile1 . Depois que fiz a transferência, certificando-me de copiá-los, tudo funcionou como esperado.

Se seu arquivo my.cnf contiver "innodb_file_per_table", o arquivo .ibd estará presente no diretório db, mas você ainda precisará dos arquivos ib*.