MySQLインストールのdatadirを変更すると、1つを除いてすべてのベースが正しく移動しました。USEデータベースに接続できます。SHOW TABLESまた、すべてのテーブルが正しく返され、各テーブルのファイルはMySQLデータディレクトリに存在します。
しかし、SELECTテーブルから何かを実行しようとすると、テーブルが存在しないというエラーメッセージが表示されます。ただし、同じ表をSHOW TABLESステートメントで示すことができたため、これは意味がありません。
私の推測では、SHOW TABLESファイルの存在はリストされますが、ファイルが破損しているかどうかはチェックされません。その結果、それらのファイルをリストすることはできますが、アクセスすることはできません。
それにもかかわらず、それは単なる推測です。私はこれを見たことがありません。現在、テストのためにデータベースを再起動することはできませんが、それを使用する他のすべてのアプリケーションは正常に動作しています。しかし、それは単なる推測です。これまでに見たことはありません。
なぜこれが起こっているのか誰か知っていますか?
例:
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