我更改了MySQL安装的datadir,所有的数据库都正确地移动了,但有一个数据库没有。 我可以连接并使用该数据库。 SHOW TABLES也可以正确返回所有表格,并且每个表格的文件都存在于MySQL数据目录中。
但是,当我尝试从表格中选择内容时,我收到一个错误消息,指出该表格不存在。 然而,这是没有意义的,因为我能够通过SHOW TABLES语句显示相同的表格。
我的猜测是,SHOW TABLES列出文件存在,但不检查文件是否损坏。 因此,我可以列出这些文件,但无法访问它们。
尽管如此,这只是一个猜测。 我以前从未见过这种情况。 现在,我无法重新启动数据库进行测试,但使用它的其他应用程序都运行良好。
有人知道为什么会发生这种情况吗?
示例:
但是,当我尝试从表格中选择内容时,我收到一个错误消息,指出该表格不存在。 然而,这是没有意义的,因为我能够通过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