我是靠谱客的博主 和谐夕阳,最近开发中收集的这篇文章主要介绍doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原创转载请注明出处

源码版本 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 解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部