使用语法
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/*!*/;