Mudei o datadir de uma instalação do MySQL e todas as bases foram movidas corretamente, exceto uma. Eu posso conectar e USEo banco de dados. SHOW TABLEStambém me devolve todas as tabelas corretamente e os arquivos de cada tabela existem no diretório de dados do MySQL.
No entanto, quando tento SELECTalgo da tabela, recebo uma mensagem de erro informando que a tabela não existe. No entanto, isso não faz sentido, pois pude mostrar a mesma tabela por meio de uma SHOW TABLESdeclaração.
Meu palpite é que SHOW TABLESlista a existência do arquivo, mas não verifica se um arquivo está corrompido ou não. Conseqüentemente, posso listar esses arquivos, mas não acessá-los.
No entanto, é apenas um palpite. Eu nunca vi isso antes. Agora, não consigo reiniciar o banco de dados para teste, mas todos os outros aplicativos que o utilizam estão funcionando bem. Mas isso é apenas um palpite, nunca vi isso antes.
Alguém sabe por que isso está acontecendo?
Exemplo:
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database |
+-----------------------+
| TABLE_ONE |
| TABLE_TWO |
| TABLE_THREE |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist