-
3. mysqlbinlog命令详解 Part 3 -查看十六进制格式内容
tutorial3
-
-
Attachments
-
Changes
-
View Source
-
View
前面的一些章节我们对mysqldump常用命令进行了讲解
这个专题的内容为mysqlbinlog命令的详解
mysqlbinlog是MySQL中用来处理binlog的工具
## 1. 命令格式
我们使用如下命令来得到二进制日志文件的十六进制内容
```
shell> mysqlbinlog --hexdump /path/to/log/master-bin.000001
```
[image:555 size:orig]
结果如上图,内容以注释符号#开头
## 2. 命令解析
下面我们根据上图中的内容进行解析
事件(event)描述了数据库内容的状态,包含了数据修改,服务器重启等
以二进制的格式写入日志文件
\# at 4 该事件开始的位置(position )为4
190410 10:37:26 代表该事件发生的时间
server id 为 MySQL实例的ID号,同一个复制环境中ID需不一样
end_log_pos为该时间结束的位置为123,即下一个时间开始的位置
接下来分析十六进制的内容
- position 该event在日志文件中的位置,即4
- timestamp 代表事件开始的时间
- type 代表事件类型的代码
- master id 即生成该事件的主库的server id,在这里为该数据库实例的server id
- size 为该事件的大小(bytes),即end_position-start_position,即123-4=119
- master pos 为原始master日志文件中下一个事件的位置,即123,在这里为该数据库
- flag 为事件标志的值
之后是该事件的具体内容
BINLOG关键字后是该事件的二进制内容,这个后面再说
--------
综上所述,上面内容为该事件
- 开始位置为4
- 开始时间为 2019190410 10:37:26
- 类型代码为15,即FORMAT_DESCRIPTION_EVENT,具体内容看上节
- server_id为 11141429
- size为77 即十进制的119
- 下一个事件的位置为7b,即十进制的123
## 3. 参考链接
[https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-hexdump.html](https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-hexdump.html)
好了 十六进制的内容就说到这里,下节内容为查看具体的语句