#### 13.4.1.2 RESET MASTER 语句

[](<>)

```
RESET MASTER [TO binary_log_file_index_number]
```

警告

请谨慎使用此语句，以确保您不会丢失任何想要的二进制日志文件数据和 GTID 执行历史记录。

[`复位主机`](reset-master.html)需要[`重新加载`](privileges-provided.html#priv_reload)特权。

对于启用了二进制日志记录的服务器（[`log_bin`](replication-options-binary-log.html#sysvar_log_bin)是`在`),`复位主机`删除所有现有的二进制日志文件并重置二进制日志索引文件，将服务器重置为二进制日志记录开始之前的状态。创建一个新的空二进制日志文件，以便可以重新启动二进制日志记录。

对于使用 GTID 的服务器（[`gtid_mode`](replication-options-gtids.html#sysvar_gtid_mode)是`在`), 发行`复位主机`重置 GTID 执行历史。的价值[`gtid_purged`](replication-options-gtids.html#sysvar_gtid_purged)系统变量设置为空字符串 (`''`), 的全局值（但不是会话值）[`gtid_executed`](replication-options-gtids.html#sysvar_gtid_executed)系统变量设置为空字符串，并且`mysql.gtid_executed`表被清除（见[mysql.gtid\_执行表](replication-gtids-concepts.html#replication-gtids-gtid-executed-table)）。如果启用 GTID 的服务器启用了二进制日志记录，[`复位主机`](reset-master.html)还如上所述重置二进制日志。注意[`复位主机`](reset-master.html)是重置 GTID 执行历史记录的方法，即使启用 GTID 的服务器是禁用二进制日志记录的副本；[`重置副本`](reset-replica.html)对 GTID 执行历史没有影响。有关重置 GTID 执行历史的更多信息，请参阅[重置 GTID 执行历史](replication-gtids-lifecycle.html#replication-gtids-execution-history).

发行`复位主机`没有可选的`到`子句删除索引文件中列出的所有二进制日志文件，将二进制日志索引文件重置为空，并从`1`.使用可选的`到`子句从一个数字以外的数字开始二进制日志文件索引`1`复位后。

使用`复位主机`与`到`用于指定二进制日志文件索引号的子句通过提供单个语句替代[`刷新二进制日志`](flush.html#flush-binary-logs)和[`清除二进制日志到`](purge-binary-logs.html)陈述。检查您使用的索引号值是否合理。如果您输入了不正确的值，您可以通过发出另一个[`复位主机`](reset-master.html)有或没有的声明`到`条款。如果您不更正超出范围的值，则无法重新启动服务器。

下面的例子演示`到`子句用法：

```
RESET MASTER TO 1234;

SHOW BINARY LOGS;
+-------------------+-----------+-----------+
| Log_name          | File_size | Encrypted |
+-------------------+-----------+-----------+
| source-bin.001234 |       154 | No        |
+-------------------+-----------+-----------+
```

重要的

的影响[`复位主机`](reset-master.html)没有`到`条款不同于那些[`清除二进制日志`](purge-binary-logs.html)在 2 个关键方面：

1.  [`复位主机`](reset-master.html)移除*全部*索引文件中列出的二进制日志文件，只留下一个带有数字后缀的空二进制日志文件`.000001`，而编号不会被重置[`清除二进制日志`](purge-binary-logs.html).

2.  [`复位主机`](reset-master.html)是*不是*旨在在任何副本运行时使用。的行为[`复位主机`](reset-master.html)在副本运行时使用时未定义（因此不受支持），而[`清除二进制日志`](purge-binary-logs.html)可以在副本运行时安全使用。

    也可以看看[第 13.4.1.1 节，“PURGE BINARY LOGS 语句”](purge-binary-logs.html).

[`复位主机`](reset-master.html)没有`到`当您第一次设置源和副本时，子句可能很有用，因此您可以按如下方式验证设置：

1.  启动源和副本，然后开始复制（请参阅[第 17.1.2 节，“设置基于二进制日志文件位置的复制”](replication-howto.html)）。

2.  在源上执行一些测试查询。

3.  检查查询是否已复制到副本。

4.  当复制正常运行时，发出[`停止复制`](stop-replica.html)其次是[`重置副本`](reset-replica.html)在副本上，然后验证副本上不存在来自测试查询的不需要的数据。

5.  问题[`复位主机`](reset-master.html)在源上清理测试查询。

    在验证设置、重置源和副本并确保测试生成的不需要的数据或二进制日志文件不会保留在源或副本上之后，您可以启动副本并开始复制。
