【编辑推荐】
- MySQL技能晋升篇 — sqlyog高等应用
- 深度解读 | 阿里云新一代关系型数据库 PolarDB
- 若何应用简单的SQL萌芽在MySQL上钩算中位数
- GitHub的MySQL基本架构主动化测试
- 苹不雅开源iOS内核,全球数据库排名MySQL三连跌
比如这里的FLAG列为33,他实际上是一个位图表示方法,分别表示如下信息:
33的二进制为00100001大年夜低位开端1:大年夜源码注释来看本位COMPACT/COMPRESSED/DYNAMIC均为10000: ZIP_SSIZE flag 这四位用于支撑紧缩功能如COMPRESSED1:ATOMIC_BLOBS flag 这一位是COMPACT和DYNAMIC重要差别地点,请看源码注释0:DATA DIRECTORY and innodb-file-per-table flag为了支撑DATA DIRECTORY语法0:SHARED tablespace flag为了支撑TABLESPACE语法
然后我们测试一下:
如不雅我们建立如下的表: CREATE TABLE t2 (c1 INT PRIMARY KEY) TABLESPACE = innodb_file_per_table DATA DIRECTORY = '/root/mysql5.7.14/percona-server-5.7.14-7/mysql-test/var/mysqld.1'; 其type为97二进制为 01100001:应用DATA DIRECTORY建立应用ATOMIC_BLOBS且无紧缩则DYNAMIC格局 详见:15.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory 如不雅我们建立如下的表: CREATE TABLESPACE tt1 ADD DATAFILE '/root/mysql5.7.14/tt1.ibd'; CREATE TABLE tsh (c1 INT ) TABLESPACE tt1 ROW_FORMAT=COMPACT ; 其type为129二进制为 10000001:应用TABLESPACE语法建立不应用ATOMIC_BLOBS且无紧缩则为COMPACT格局 详见:15.5.9 InnoDB General Tablespaces
3、如不雅不克不及找到则报错
我们可以看到应用8位一个字节罢了就可以表示出大年夜量的信息,这也是位图的优势,其他比如 MTYPE/PRTYPE也是这种表示方法
接下来我们回到主题,须要看看这个错到底是哪里报错来的?进行trace后如下,我们来看看重要部分:
留意这里的trace是mysql debug版本下查看函数调用的重要办法参考官方文档26.5.1.2 Creating Trace Files502 T@2: | | | | | | | | | | | >ha_innobase::open_dict_table
- 503 T@2: | | | | | | | | | | | | >dict_table_open_on_name
- 504 T@2: | | | | | | | | | | | | | dict_table_open_on_name: table: 'test/test1bak'
- 505 T@2: | | | | | | | | | | | | | >dict_table_check_if_in_cache_low
- 506 T@2: | | | | | | | | | | | | | | dict_table_check_if_in_cache_low: table: 'test/test1bak'
- 507 T@2: | | | | | | | | | | | | | <dict_table_check_if_in_cache_low 125
- 508 T@2: | | | | | | | | | | | | | >dict_load_table
推荐阅读
DIY就是靠你本身着手做的意思,这意味着DIY拥有很大年夜的自由度和那份无人能赐与的成就感,但当然了,伴跟着的也拥有必定的难度与障碍。对于我们DIY装机来说,那些DIY玩家应当也就是凭借着前面所说那份>>>详细阅读
本文标题:关于MySQL ERROR 1146 Table doesnt exist的解析
地址:http://www.17bianji.com/lsqh/37797.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示