概述
原创转载请注明出处
源码版本 5.7.14
在MYSQL使用innodb的时候我们有时候会看到如下报错:
ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist
首先总结下原因:
缺少frm文件
innodb数据字典不包含这个表
我们重点讨论情况2,因为情况1是显而易见的。
?在使用innodb存储引擎的时候某些时候我们show tables能够看到这个表,但是如果进行任何操作会报错如下:
mysql> show tables;
| test1bak |
mysql> desc test1bak ;
ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist
也许你会说我明明能够看到这个表啊,为什么访问还会报错呢?其实要清楚innodb有自己的数据字典,只要有frm 文件存在show tables就能看到,但是最终是否能够正常打开表结构在innodb中还依赖于innodb的数据字典,主要的包含:
INNODB_SYS_columns
INNODB_SYS_FIELDS
INNODB_SYS_TABLES
INNODB_SYS_INDEXES
如果报错出现我们需要首先查看的是INNODB_SYS_TABLES是否包含了这个表的信息。也许在这些数据字典中也许某些列并显示并不是那么明确,比如
mysql> select * from information_schema.innodb_sys_tables where name='test/kk
最后
以上就是和谐夕阳为你收集整理的doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析的全部内容,希望文章能够帮你解决doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复