MySQL-mysql 数据库 show tables 显示表名,但是查询的时候却提示此表不存在是怎么回事?

发布于 2017-01-11 04:33:53 字数 673 浏览 3378 评论 1

最近接手了一个数据库项目,在mysql数据库中show tables 时显示有表,但是要查询数据时却显示此表不存在,请问有人遇到过或者能解决吗?我在百度搜索过了,有网友遇到过这个问题,他重建了表,但是我想深入了解产生这种现象的真正原因,而且想知道不重建表有没有办法恢复表的正常使用?
这个项目是别人做的,我最近刚接手,这几个表是怎么创建的我也不知道:

这个是我在登陆数据库后输入show tables 命令后的显示和select之后的提示
输入linux命令:
mysql -uroot -pcacheappmas cacheappmasanhui -e 'SHOW TABLE STATUS from cacheappmasanhui;' >> en.list
得到en.list文件,内容为:

请输入图片描述

可能是由于表 2013-2-25_165900 出现问题的原因,该表状态没有显示出来,所以无法得知该表的存储引擎。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2017-08-21 09:33:30

这种错误出现的可能场景: 表使用innodb引擎,innodb数据文件被删除或者重建了。
比如把内含innodb表的数据库mydb迁移到其他服务器上,但是只把data/mydb目录拷贝到新服务器。目录mydb 下只有.frm 文件。
mysql命令行上表现就是 show tables 一切正常,select from 表名 时 提示表不存在。

看一下是所有的innodb表都这样,还是只有这一个,如果只有这一个,是否可以有innodb修复工具修复下?没有这方面经验。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文