mysqlbinlog解析binlog
查看是否开启binlog
开启binlog
修改配置文件/etc/my.cnf
,在[mysqld]
节点下增加配置:
使用mysql命令查看binlog
Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
---|---|---|---|---|---|
mysql-bin.000005 | 660 | Query | 1 | 740 | BEGIN |
mysql-bin.000005 | 740 | Table_map | 1 | 850 | table_id: 115 (biz-sh-test.sys_common_log) |
mysql-bin.000005 | 850 | Write_rows | 1 | 1252 | table_id: 115 flags: STMT_END_F |
mysql-bin.000005 | 1252 | Xid | 1 | 1283 | COMMIT /xid=2325 */ |
- Log_name:日志文件名
- Pos:事件在文件中起始位置
- Event_type:事件类型
- Server_id:服务id,对应my.cnf文件中的设置
- End_log_pos:事件在文件中结束位置
- Info:详细信息
使用mysqlbinlog工具查看binlog
mysqlbinlog常用过滤参数:
- 时间过滤
--start-datetime="Y-m-d H:i:s"
和--stop-datetime="Y-m-d H:i:s"
:如:—start-datetime=“2021-4-20 00:00:00” - 位置过滤
--start-position=the_position_integer
和--stop-position=the_position_integer
- 数据库过滤
--database=the_database_name
, 或者-d the_database_name
- 偏移量
--offset=N
,-o N
mysqlbinlog输出控制:
--base64-output=decode-rows
: base64-output,可以控制输出语句输出base64编码的BINLOG语句; decode-rows:选项将把基于行的事件解码成一个SQL语句--version
,-V
: 显示版本号并退出--verbose
,-v
: 重新组织行事件,并以sql注释的方式显示(Reconstruct row events and display them as commented SQL statements)