作家
登录

关于MySQL ERROR 1146 Table doesnt exist的解析

作者: 来源: 2017-10-11 15:04:04 阅读 我要评论


MySQL ERROR 1146 Table doesnt exist解析

☉源码版本 5.7.14

在MYSQL应用innodb的时刻我们有时刻会看到如下报错:

  1. ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist 

起首总结下原因:

  1. 缺乏frm文件
  2. innodb数据字典不包含这个表

我们重点评论辩论情况2,因为情况1是显而易见的。

在应用innodb存储引擎的时刻某些时刻我们show tables可以或许看到这个表,然则如不雅进行任何操作会报错如下:

经由过程扫描字典的B+树进行加载

  1. mysql> show tables;    
  2. | test1bak          |    
  3. mysql> desc test1bak ;    
  4. ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist  

也许你会说我明明可以或许看到这个表啊,为什么拜访还会报错呢?其实要清跋扈innodb有本身的数据字典,只要有frm 文件存在show tables就能看到,然则最终是否可以或许正常打开表构造在innodb中还依附于innodb的数据字典,重要的包含:

1、INNODB_SYS_columns

2、INNODB_SYS_FIELDS

3、INNODB_SYS_TABLES

4、INNODB_SYS_INDEXES

  1. /* Table and tablespace flags are generally not used for the Antelope file    
  2. format except for the low order bit, which is used differently depending on    
  3. where the flags are stored.    
  4.  
  5. ==================== Low order flags bit =========================    
  6.                     | REDUNDANT | COMPACT | COMPRESSED and DYNAMIC    
  7. SYS_TABLES.TYPE     |     1     |    1    |     1    
  8. dict_table_t::flags |     0     |    1    |     1    
  9. FSP_SPACE_FLAGS     |     0     |    0    |     1    
  10. fil_space_t::flags  |     0     |    0    |     1    
  11.  
  12. /** Width of the COMPACT flag */    
  13. #define DICT_TF_WIDTH_COMPACT       1    
  14.  
  15. /** Width of the ZIP_SSIZE flag */    
     1/7    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      因为这些原因 让你讨厌DIY装机吗?

    DIY就是靠你本身着手做的意思,这意味着DIY拥有很大年夜的自由度和那份无人能赐与的成就感,但当然了,伴跟着的也拥有必定的难度与障碍。对于我们DIY装机来说,那些DIY玩家应当也就是凭借着前面所说那份>>>详细阅读


    本文标题:关于MySQL ERROR 1146 Table doesnt exist的解析

    地址:http://www.17bianji.com/lsqh/37797.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)