没有合适的资源?快使用搜索试试~ 我知道了~
mysql之frm文件解析.txt
5星 · 超过95%的资源 需积分: 49 18 下载量 71 浏览量
2019-05-09
23:34:55
上传
评论 1
收藏 5KB TXT 举报
温馨提示
试读
6页
资料是对mysql frm文件的解析,通过分析frm文件可以获取到数据库的表,字段名等信息。
资源推荐
资源详情
资源评论
mysql frm文件解析(基于mysql5.5.36)
案例表:
CREATE TABLE demo (
xx CHAR(21) NOT NULL,
xxxx CHAR(45) NOT NULL,
x1 CHAR(34)
x3 CHAR(35) NOT NULL,
PRIMARY KEY (xx, test),
UNIQUE KEY (x1)
) ENGINE = INNODB;
文件头(前64字节 unsigned char 64)
fe01090c 030000 100100 003000 00e203 db0100 000000 000000 000002 3e0008
000005 000000 002100 000000 0000000e203 000068 c50000 100000 000000 000000
head[0]:fe
head[1]:01 head[2]:09 head[3]:0c head[4]:03
head[5]:00 head[6]:00 head[7]:10 head[8]:01
head[9]:00 head[10]:00 head[11]:30 head[12]:00
head[13]:00 head[14]:e2 head[15]:03 head[16]:db
head[17]:01 head[18]:00 head[19]:00 head[20]:00
head[21]:00 head[22]:00 head[23]:00 head[24]:00
head[25]:00 head[26]:00 head[27]:02 head[28]:3e
head[29]:00 head[30]:08 head[31]:00 head[32]:00
head[33]:05 head[34]:00 head[35]:00 head[36]:00
head[37]:00 head[38]:21 head[39]:00 head[40]:00
head[41]:00 head[42]:00 head[43]:00 head[44]:00
head[45]:00 head[46]:00 head[47]:e2 head[48]:03
案例表:
CREATE TABLE demo (
xx CHAR(21) NOT NULL,
xxxx CHAR(45) NOT NULL,
x1 CHAR(34)
x3 CHAR(35) NOT NULL,
PRIMARY KEY (xx, test),
UNIQUE KEY (x1)
) ENGINE = INNODB;
文件头(前64字节 unsigned char 64)
fe01090c 030000 100100 003000 00e203 db0100 000000 000000 000002 3e0008
000005 000000 002100 000000 0000000e203 000068 c50000 100000 000000 000000
head[0]:fe
head[1]:01 head[2]:09 head[3]:0c head[4]:03
head[5]:00 head[6]:00 head[7]:10 head[8]:01
head[9]:00 head[10]:00 head[11]:30 head[12]:00
head[13]:00 head[14]:e2 head[15]:03 head[16]:db
head[17]:01 head[18]:00 head[19]:00 head[20]:00
head[21]:00 head[22]:00 head[23]:00 head[24]:00
head[25]:00 head[26]:00 head[27]:02 head[28]:3e
head[29]:00 head[30]:08 head[31]:00 head[32]:00
head[33]:05 head[34]:00 head[35]:00 head[36]:00
head[37]:00 head[38]:21 head[39]:00 head[40]:00
head[41]:00 head[42]:00 head[43]:00 head[44]:00
head[45]:00 head[46]:00 head[47]:e2 head[48]:03
head[49]:00 head[50]:00 head[51]:68 head[52]:c5
head[53]:00 head[54]:00 head[55]:10 head[56]:00
head[57]:00 head[58]:00 head[59]:00 head[60]:00
head[61]:00 head[62]:00 head[63]:00 head[64]:2f
head[65]:2f head[66]:00 head[67]:00 head[68]:20
head[69]:00 head[70]:00 head[71]:00 head[72]:00
head[73]:00 head[74]:00 head[75]:00 head[76]:00
head[77]:00 head[78]:00 head[79]:00 head[80]:00
head[81]:00 head[82]:00 head[83]:00
head[0-3]:前4个字节是fe 01 09 0c,也就是254 1 9 12。
#define FRM_VER 6
sql/table.cc :open_table_def() //5.8的mysql版本 open_binary_frm
if(head[0] == (uchar) 254 && head[1] == 1)
{
if (head[2] == FRM_VER || head[2] == FRM_VER+1 ||
(head[2] >= FRM_VER+3 && head[2] <= FRM_VER+4)){
table_type = 1; //表示这个文件是一个表
}
}
在前两字节是254,1,并且第三字节 = FRM_VER,或者FRM_VER+1,或者(大于等FRM_VER+3企鹅小于等于FRM_VER+4),
则表示这是一张表
FRM_VER是一个宏,对于本环境来说 FRM_VER是6
#define FRM_VER 6
head[3]:0x0c 表示存储引擎是innodb(DB_TYPE_INNODB enum legacy_db_type) 代码:legacy_db_type= (enum legacy_db_type) (uint) *(head+3);
head[53]:00 head[54]:00 head[55]:10 head[56]:00
head[57]:00 head[58]:00 head[59]:00 head[60]:00
head[61]:00 head[62]:00 head[63]:00 head[64]:2f
head[65]:2f head[66]:00 head[67]:00 head[68]:20
head[69]:00 head[70]:00 head[71]:00 head[72]:00
head[73]:00 head[74]:00 head[75]:00 head[76]:00
head[77]:00 head[78]:00 head[79]:00 head[80]:00
head[81]:00 head[82]:00 head[83]:00
head[0-3]:前4个字节是fe 01 09 0c,也就是254 1 9 12。
#define FRM_VER 6
sql/table.cc :open_table_def() //5.8的mysql版本 open_binary_frm
if(head[0] == (uchar) 254 && head[1] == 1)
{
if (head[2] == FRM_VER || head[2] == FRM_VER+1 ||
(head[2] >= FRM_VER+3 && head[2] <= FRM_VER+4)){
table_type = 1; //表示这个文件是一个表
}
}
在前两字节是254,1,并且第三字节 = FRM_VER,或者FRM_VER+1,或者(大于等FRM_VER+3企鹅小于等于FRM_VER+4),
则表示这是一张表
FRM_VER是一个宏,对于本环境来说 FRM_VER是6
#define FRM_VER 6
head[3]:0x0c 表示存储引擎是innodb(DB_TYPE_INNODB enum legacy_db_type) 代码:legacy_db_type= (enum legacy_db_type) (uint) *(head+3);
剩余5页未读,继续阅读
资源评论
- 搬运工8652020-07-27感谢分享!!
冰缘666呀
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功