使用mysqlbinlog工具获取binlog
操作场景
本章节介绍如何从弹性云服务器ECS上拉取Binlog日志,并通过mysqlbinlog工具查看并解析Binlog日志。
前提条件
请确认您已开启Binlog日志,包含本地Binlog和OBS转储Binlog。
操作步骤
- 在ECS上安装MySQL客户端,详情请参考安装MySQL客户端。
TaurusDB兼容社区MySQL 8.0及以上版本,请勿安装8.0以下版本的客户端。
- 通过MySQL客户端连接TaurusDB。
- 执行如下命令,查找需要下载的Binlog文件。
show binlog logs with time;

Binlog数量过多时,执行时间变长,会短暂阻塞正常的事务提交。
- 执行命令,下载Binlog原始文件到本地。
本章节示例以Linux系统为例,在执行如下语句前,需先执行exit退出MySQL客户端后,才能下载Binlog日志到本地。
mysqlbinlog -h<连接地址> -u<用户名> -P<端口号> -p<密码> --read-from-remote-server --raw binlog.xxxx -r <结果文件目录>
mysqlbinlog -h127.0.0.1 -uroot -P54855 -p --read-from-remote-server --raw binlog.000002 -r /tmp/

表1 mysqlbinlog参数说明 参数
说明
-h
TaurusDB实例的读写内网地址或读写公网地址。
-u
TaurusDB的数据库账号, 默认的管理员账号是root。
-P
TaurusDB的数据库端口,默认3306。
-p
TaurusDB的数据库账号对应的密码。
-R(--read-from-remote-server)
远程下载binlog(用于mysqlbinlog与数据库服务端不在同一台机器的情况)。
-r(--result-file)
直接输出到指定文件。使用 --raw 选项时,这将作为文件名的前缀。
- 解析Binlog原始文件。
mysqlbinlog -vv --base64-output=decode-rows mysql-bin.****** -r <结果文件>
mysqlbinlog -vv --base64-output=decode-rows /tmp/binlog.000002 -r /tmp/000002.result

表2 解析相关参数 参数
说明
-vv
查看具体SQL语句及备注。
--base64-output
解析Binlog日志文件。
mysqlbinlog其他参数
|
参数 |
说明 |
|---|---|
|
--start-position |
表示从指定的起始位置开始解析。 |
|
--start-datetime |
表示从指定的时间开始解析。 |
|
--stop-position |
表示解析到指定的位置。 |
|
--stop-datetime |
表示解析到指定的时间。 |
|
--skip-gtids |
跳过打印gtid_log_event。 |
|
--short-form |
表示只显示statements。 |