免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

本文主要介绍RDS for MySQL如何远程获取Binlog日志,并通过mysqlbinlog工具解析Binlog日志。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

获取Binlog日志

根据需要选择合适的Binlog日志获取方法。

远程获取Binlog日志

  1. 通过客户端连接实例,执行如下SQL语句,查看并记录logs表中的Log_name列值,该值即为Binlog日志文件名,例如mysql-bin.xxx
    show binary logs;
    系统显示类似如下。
    查看当前binlog文件
  2. 根据上一步获取的Binlog文件名,在客户端执行如下命令,远程获取Binlog日志并保存至本地。
    mysqlbinlog -u[$User] -p[$Password] -h[$Host] --read-from-remote-server mysql-bin.xxx > [$File_Name]
    说明
    • [$Host]指云数据库RDS实例远程连接地址。
    • [$File_Name]远程获取的Binlog文件保存在本地的新文件名。
    • [$User]指远程连接使用的用户。
    • [$Password]远程连接使用的用户密码。
  3.  执行如下命令,确认远程获取Binlog日志成功。
    more [$File_Name]
    系统显示类似如下。
    保存查看

控制台直接下载

通过控制台直接下载Binlog日志文件

mysqlbinlog工具使用介绍

  1. 在客户端执行如下命令,通过mysqlbinlog工具查看Binlog日志文件内容。
    mysqlbinlog -vv --base64-output=decode-rows mysql-bin.xxx | more
    说明
    • -vv参数为查看具体SQL语句及备注。
    • --base64-output=decode-rows参数为解析Binlog日志文件。
    系统显示类似如下。
    155503646337626_zh-CN.png
  2. 关于如何解析Binlog日志,请参见MySQL官方网站

更多信息

以下分别描述了使用mysqlbinlog工具遇到的两种常见问题:

  • 若出现以下报错内容,请检查使用的mysqlbinlog工具版本,例如使用3.3版本遇到以下错误,3.4版本可正常查看,出现此情况您可以使用较高版本的mysqlbinlog工具。
    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 151, event_type: 35
    ERROR: Could not read entry at offset 120: Error in log format or read error.
  • 没有使用--base64-output=decode-rows参数,导致输出的结果为未解析的内容。
    155503646337627_zh-CN.png

适用于

  • 云数据库RDS MySQL版