我更改了MySQL安装的数据目录,除一个库外,所有库均已正确移动。我可以和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