Mudei o datadir de uma instalação do MySQL e todas as bases foram movidas corretamente, exceto uma. Eu posso conectar e USE
o banco de dados. SHOW TABLES
també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 SELECT
algo 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 TABLES
declaração.
Meu palpite é que SHOW TABLES
lista 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