

# 访问 MySQL 二进制日志
<a name="USER_LogAccess.MySQL.Binarylog"></a>

可使用 mysqlbinlog 实用程序从 RDS for MySQL 数据库实例下载或流式传输二进制日志。二进制日志下载到本地计算机，可以执行一些操作，例如使用 mysql 实用程序执行重放日志。有关使用 mysqlbinlog 实用程序的更多信息，请参阅 MySQL 文档中的[使用 mysqlbinlog 备份二进制日志文件](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html)。

要针对 Amazon RDS 实例运行 mysqlbinlog 实用工具，请使用下列选项：
+ `--read-from-remote-server` – 必需。
+ `--host` – 来自实例的端点的 DNS 名称。
+ `--port` – 实例使用的端口。
+ `--user` – 已获得 `REPLICATION SLAVE` 权限的 MySQL 用户。
+ `--password` – MySQL 用户的密码，或忽略密码值以让实用程序提示您输入密码。
+ `--raw` – 以二进制格式下载文件。
+ `--result-file` – 用于接收原始输出的本地文件。
+ `--stop-never` – 流式传输二进制日志文件。
+ `--verbose` – 使用 `ROW` 二进制日志格式时，包括此选项以将行事件视为伪 SQL 语句。有关 `--verbose` 选项的更多信息，请参阅 MySQL 文档中的 [mysqlbinlog 行事件显示](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html)。
+ 指定一个或多个二进制日志文件的名称。要获取可用日志的列表，请使用 SQL 命令 `SHOW BINARY LOGS`。

有关 mysqlbinlog 选项的更多信息，请参阅 MySQL 文档中的 [mysqlbinlog - 处理二进制日志文件的实用程序](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html)。

以下示例显示如何使用 mysqlbinlog 实用程序。

对于 Linux、macOS 或 Unix：

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

对于 Windows：

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

数据库实例上的二进制日志必须保持可用，以备 mysqlbinlog 实用程序访问。要确保这些日志的可用性，请使用 [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 存储过程并指定一个时段，以便您有足够的时间来下载日志。如果未设置此配置，Amazon RDS 会尽可能快地清除二进制日志，导致 mysqlbinlog 实用程序检索的二进制日志出现空白。

以下示例将保留期设置为 1 天。

```
call mysql.rds_set_configuration('binlog retention hours', 24);
```

要显示当前设置，请使用 [mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration) 存储过程。

```
call mysql.rds_show_configuration;
```