RDS MySQL如何远程获取Binlog日志并解析Binlog日志 您所在的位置:网站首页 mysql没有bin RDS MySQL如何远程获取Binlog日志并解析Binlog日志

RDS MySQL如何远程获取Binlog日志并解析Binlog日志

2023-03-27 08:13| 来源: 网络整理| 查看: 265

重要

阿里云提醒您:

如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

操作步骤

您可以参考以下方法远程获取Binlog日志并解析Binlog日志。

获取Binlog日志

请根据实际情况选择合适的Binlog日志获取方法。

方法一:控制台下载日志文件(推荐)

通过RDS控制台直接下载日志文件,详情请参见下载Binlog日志文件。

方法二:远程获取Binlog日志

通过客户端连接实例,详情请参见连接实例。

执行以下SQL语句,查看并记录logs表中的Log_name值,该值为Binlog日志文件名,例如mysql-bin.xxx。

show binary logs;

系统显示类似如下。

查看当前binlog文件

根据上一步获取的Binlog文件名,在客户端执行以下命令,远程获取Binlog日志并保存至本地。

mysqlbinlog -u[$User] -p[$Password] -h[$Host] --read-from-remote-server --raw mysql-bin.XXX > [$File_Name]说明

[$Host]为云数据库RDS实例远程连接地址。

[$File_Name]为远程获取Binlog文件保存在本地的文件名。

[$User]为远程连接时使用的用户。

[$Password]为远程连接时使用的用户密码。

执行以下命令,确认远程获取Binlog日志成功。

more [$File_Name]

系统显示类似如下,表示已成功。保存查看

通过mysqlbinlog查看Binlog日志文件

在客户端执行以下命令,通过mysqlbinlog工具查看Binlog日志文件内容。

mysqlbinlog -vv --base64-output=decode-rows mysql-bin.XXX | more说明

-vv为查看具体SQL语句及备注。

--base64-output=decode-rows为待解析Binlog日志文件。

系统显示类似如下。 155503646337626_zh-CN.png

说明

更多关于Binlog日志的解析,请参见MySQL官方网站。

常见问题

以下介绍了使用mysqlbinlog工具遇到的三种常见问题。

若出现以下报错内容,请检查使用的mysqlbinlog工具版本。例如您使用3.3版本遇到以下错误,但是在3.4版本中已经修复此问题,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.

通过mysqlbinlog工具查看Binlog日志文件内容时,没有使用--base64-output=decode-rows参数,导致输出的结果为未解析的内容。 155503646337627_zh-CN.png

若出现以下报错,请检查my.cnf配置文件中是否存在default-character-set=utf8mb4字段,如果存在,可以通过在命令中添加--no-defaults参数避免该问题。例如:mysqlbinlog --no-defaults -u[$User] -p[$Password] -h[$Host] --read-from-remote-server mysql-bin.XXX > [$File_Name]。

mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'适用于

云数据库RDS MySQL



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有