J'ai changé le datadir d'une installation MySQL et toutes les bases se sont déplacées correctement sauf une. Je peux me connecter et USEla base de données. SHOW TABLESme renvoie également toutes les tables correctement, et les fichiers de chaque table existent sur le répertoire de données MySQL.
Cependant, lorsque j'essaie de SELECTtrouver quelque chose dans la table, j'obtiens un message d'erreur indiquant que la table n'existe pas. Pourtant, cela n'a pas de sens puisque j'ai pu montrer le même tableau à travers la SHOW TABLESdéclaration.
Je suppose que cela SHOW TABLESrépertorie l'existence du fichier mais ne vérifie pas si un fichier est corrompu ou non. Par conséquent, je peux lister ces fichiers mais ne pas y accéder.
Néanmoins, ce n'est qu'une supposition. Je n'avais jamais vu ça avant. Maintenant, je ne peux pas redémarrer la base de données pour les tests, mais toutes les autres applications qui l'utilisent fonctionnent correctement. Mais c'est juste une supposition, je n'ai jamais vu ça auparavant.
Est-ce que quelqu'un sait pourquoi cela se produit?
Exemple:
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