首页 > 请问有没有可能自己解析mysql的ibdata文件?

请问有没有可能自己解析mysql的ibdata文件?

比如,我从那个ibdata中发现了下面这些数据。我认为这些数据是一张名为test的表产生的,而且我做了测试证明了这个猜测(这个测试就是我在往这个表中插入新的数据后这一部分的数据也会发生相应的变化)。 关于test表,其建表语句如下:

create table 搜索test (id int, MSGCONTENT VARCHAR(50));

下面这些数据是我往该表中插入

insert into test values(1, "abcd");
insert into test values(2, "efgh");
insert into test values(3, "ijkl");
insert into test values(4, "mnop");
insert into test values(5, "qrst");

得到的 (为了分开真正的数据部分和其它信息,我在下面这些数据的某一处换了一行)

6f67 6298 05f5 767e
aa7c e54e 0000 0703 ffff ffff ffff ffff
0000 0000 05f5 76b9 45bf 0000 0000 0000
0000 0000 0000 0002 0122 8007 0000 0000
0107 0002 0004 0005 0000 0000 0000 0000
0000 0000 0000 0000 0052 0000 0000 0000
0209 33f2 0000 0000 0000 0209 06f2 0100
0200 1c69 6e66 696d 756d 0006 000b 0000
7375 7072 656d 756d 0400 0000 1000 2200
0000 0179 c200 0000 0172 8dd2 0000 01cc
0110 8000
          0001 6162 6364 0400 0000 1800
2200 0000 0179 c300 0000 0172 8ed3 0000
0192 0110 8000 0002 6566 6768 0400 0000
2000 2200 0000 0179 c400 0000 0172 8fd4
0000 01cd 0110 8000 0003 696a 6b6c 0400
0000 2800 2200 0000 017a 0000 0000 0176
0182 0000 0139 0110 8000 0004 6d6e 6f70
0400 0000 30ff 6900 0000 017a 0100 0000
0176 0384 0000 0704 0110 8000 0005 7172
7374 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

在往test表中

insert into test values(6, "uvwx");

后,ibdata 文件中的相应部分变成了

02ad 8153 05f5 7724
35d5 0778 0000 0703 ffff ffff ffff ffff
0000 0000 05f5 771d 45bf 0000 0000 0000
0000 0000 0000 0002 0144 8008 0000 0000
0129 0002 0005 0006 0000 0000 0000 0000
0000 0000 0000 0000 0052 0000 0000 0000
0209 33f2 0000 0000 0000 0209 06f2 0100
0200 1c69 6e66 696d 756d 0007 000b 0000
7375 7072 656d 756d 0400 0000 1000 2200
0000 0179 c200 0000 0172 8dd2 0000 01cc
0110 8000
          0001 6162 6364 0400 0000 1800
2200 0000 0179 c300 0000 0172 8ed3 0000
0192 0110 8000 0002 6566 6768 0400 0000
2000 2200 0000 0179 c400 0000 0172 8fd4
0000 01cd 0110 8000 0003 696a 6b6c 0400
0000 2800 2200 0000 017a 0000 0000 0176
0182 0000 0139 0110 8000 0004 6d6e 6f70
0400 0000 3000 2200 0000 017a 0100 0000
0176 0384 0000 0704 0110 8000 0005 7172
7374 0400 0000 38ff 4700 0000 017a 0200
0000 0176 0586 0000 0168 0110 8000 0006
7576 7778 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

有没有人能告诉我那些非数据部分的字段代表什么含义?

比如:

我猜测第5行第4个4字节可能表示的是表中的记录数。

【热门文章】
【热门文章】