我改变了MySQL安装的datadir,所有的基都正确移动,除了一个。
我可以连接和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