分析Mysql Binlog 日志

August 29, 2020

这篇文章主要介绍了如何分析MySQL的Binlog日志。首先,我们需要确认mysqlbinlog命令是否存在。然后,文章提供了几种不同的命令来解析Binlog日志,包括全量解析、按时间范围解析、只解析某个数据库和只解析某个binlog文件。最后,文章解释了在解析过程中可能遇到的错误,这些错误可能是由于MySQL版本问题造成的,建议使用高于5.6版本的MySQL进行分析。

相关命令

分析Mysql的Binlog日志,按时间维度查询mysql操作记录。

#查看mysqlbinlog命令是否存在
>mysqlbinlog
mysqlbinlog Ver 3.3 for Linux at x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Dumps a MySQL binary log in a format usable for viewing or for piping to
the mysql command line client.

#全量解析

./mysqlbinlog  --base64-output='DECODE-ROWS' --verbose  *-binlog.000* >> xxxx.sql
#按时间范围解析
./mysqlbinlog  --base64-output='DECODE-ROWS' --verbose  --start-datetime='2016-05-20 10:00:00' --stop-datetime='2016-05-20 12:00:00' *-binlog.0008* >> xxxx.sql
#只解析某个数据库
./mysqlbinlog  --base64-output='DECODE-ROWS' --verbose  --database=databasename *-binlog.000* >> xxxx.sql
#只解析某个binlog文件
./mysqlbinlog  --base64-output='DECODE-ROWS' --verbose  3306-binlog.000001 >> xxxx.sql

问题

报错内容
ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 31, event_type: 35
ERROR: Could not read entry at offset 120: Error in log format or read error.
原因

这是因为Mysql版本问题造成的,请选择高于5.6版本的Mysql进行分析。

Mysqlbinlog

IARNO

服务端开发

utf8_bin和utf8_general_ci编码的区别

博客导流公众号