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