我确实更改了MySQL安装的datadir,并按照某些步骤运行良好。我曾经动过的每个基地都正确地移动了,但是一个。
我可以连接和使用数据库,即使SHOW TABLES也会正确返回所有表,并且每个表的文件都存在于mysql数据目录中。但是,当我尝试在此处选择内容时,它说该表不存在。但是表确实存在,它甚至显示在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