MySQL-mysql 数据库 show tables 显示表名,但是查询的时候却提示此表不存在是怎么回事?
最近接手了一个数据库项目,在mysql数据库中show tables 时显示有表,但是要查询数据时却显示此表不存在,请问有人遇到过或者能解决吗?我在百度搜索过了,有网友遇到过这个问题,他重建了表,但是我想深入了解产生这种现象的真正原因,而且想知道不重建表有没有办法恢复表的正常使用?
这个项目是别人做的,我最近刚接手,这几个表是怎么创建的我也不知道:
输入linux命令:
mysql -uroot -pcacheappmas cacheappmasanhui -e 'SHOW TABLE STATUS from cacheappmasanhui;' >> en.list
得到en.list文件,内容为:
可能是由于表 2013-2-25_165900 出现问题的原因,该表状态没有显示出来,所以无法得知该表的存储引擎。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种错误出现的可能场景: 表使用innodb引擎,innodb数据文件被删除或者重建了。
比如把内含innodb表的数据库mydb迁移到其他服务器上,但是只把data/mydb目录拷贝到新服务器。目录mydb 下只有.frm 文件。
mysql命令行上表现就是 show tables 一切正常,select from 表名 时 提示表不存在。
看一下是所有的innodb表都这样,还是只有这一个,如果只有这一个,是否可以有innodb修复工具修复下?没有这方面经验。