使用语法
mysqlbinlog [options] log-files
常用参数说明
| 参数 | 描述 |
|---|---|
| -?, --help | 帮助信息 |
| --base64-output=name | 输出格式,‘auto’:默认自动;‘never’:以binlog事件格式输出;‘decode-rows’:以注释方式输出pseudo-SQL |
| -d, --database=name | 只列出该数据库的条目(只用本地日志) |
| --bind-address | 绑定的IP地址 |
| -h, --host=name | 获取给定主机的mysql服务器的二进制日志 |
| -p, --password[=name] | 连接的密码 |
| -u, --user | 连接远程服务器的用户 |
| -P, --port= | 端口 |
| -R, --read-from-remote-server | 从MySQL服务器读取二进制日志 |
| --raw | 与-R一起使用,输出原始的binlog日志数据 |
| --start-datetime=name | 解析日志开始的时间 |
| --stop-datetime=name | 解析日志结束的时间 |
| -j, --start-position | 解析日志开始的位点 |
| --stop-position= | 解析日志结束的位点 |
| -v, --verbose | 详细信息 |
| -f, --force-read | 强制继续读取,若不能识别的事件会会输出警告信息 |
| -o, --offset=N | 跳过前N个条目 |
| -s, --short-form | 只显示日志中包含的语句,不显示其他信息 |
| --character-sets-dir=name | 字符集路径信息 |
| -S, --socket=name | socket |
| -D, --disable-log-bin | 禁用二进制.如果使用-to-last-logs选项将输出发生给同一台mysql服务器,可以避免无限循环。该选项在崩溃恢复时也很有用,可以避免的复制的已经记录的语句。该选项需要super权限。 |
| -t, --to-last-log | 在mysql服务器中请求的二进制日志的结尾的不停止,而是继续打印直到最后一个二进制日志的结尾。如果将输出发送给同一台mysql服务器,会导致无限循环,该选项要--read-from-remote-server |
| -F, --force-if-open | 默认开启,如果binlog没有正确关闭,强制关闭 |
| --connection-server-id | 从库的server-id |
| -H, --hexdump | 在注释中显示十六进制和ASCII事件转储 |
| -l, --local-load=name | 文件中为LOAD DATA INFILE准备本地临时文件指定的目录 |
| --skip-gtids | 跳过GTID |
| --include-gtids=name | 打印时间提供的GTID |
| --exclude-gtids=name | 打印所有事情提供的GTID |
| --print-table-metadata | 打印存储于Table_map_log_event的metadata信息 |
实例测试
## binlog日志文件解析
mysqlbinlog --base64-output=decode-row /data/mysql_log/mysql-bin.000008 -v
## 解析指定时间
mysqlbinlog --base64-output=decode-row /data/mysql_log/mysql-bin.000008 -v --start-datetime='2022-03-02 14:30:30'
## 解析指定位点
mysqlbinlog --base64-output=decode-row /data/mysql_log/mysql-bin.000008 -v --start-position=6199 --stop-position=6319
## 解析后的文件信息格式
...
....
SET TIMESTAMP=1646202630/*!*/;
BEGIN
/*!*/;
# at 6199
#220302 14:30:30 server id 1033306 end_log_pos 6248 CRC32 0x56411c87 Table_map: `test`.`bb` mapped to number 114
# at 6248
#220302 14:30:30 server id 1033306 end_log_pos 6319 CRC32 0xeb502b34 Write_rows: table id 114 flags: STMT_END_F
### INSERT INTO `test`.`bb`
### SET
### @1=1
### @2=16
### INSERT INTO `test`.`bb`
### SET
### @1=2
### @2=17
### INSERT INTO `test`.`bb`
### SET
### @1=3
### @2=18
### INSERT INTO `test`.`bb`
### SET
### @1=4
### @2=20
# at 6319
#220302 14:30:30 server id 1033306 end_log_pos 6350 CRC32 0x9fd4e6c5 Xid = 831
COMMIT/*!*/;
