为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL>表不存在。但这确实(或者应该如此)

MySQL>表不存在。但这确实(或者应该如此)

慕神8447489 2019-10-14 15:25:28
我确实更改了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
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

以防万一有人还在乎:


使用命令直接复制数据库目录后,我遇到了同样的问题


cp -r /path/to/my/database /var/lib/mysql/new_database

如果您对使用InnoDB表的数据库执行此操作,则会遇到上述疯狂的“表不存在”错误。


问题是,你需要ib*在MySQL的datadir根目录的文件(例如ibdata1,ib_logfile0和ib_logfile1)。


当我复制这些内容时,它对我有用。


查看完整回答
反对 回复 2019-10-14
?
holdtom

TA贡献1805条经验 获得超10个赞

对我来说,在Mac OS(MySQL DMG安装)上,只需重启MySQL服务器即可解决此问题。我猜是因为冬眠造成的。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 1587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信