#### 17.1.2.3 创建用于复制的用户

每个副本都使用 MySQL 用户名和密码连接到源，因此源上必须有一个用户帐户，副本可以用来连接。用户名由`SOURCE_USER`\|`MASTER_USER`的选项[`将复制源更改为`](change-replication-source-to.html)语句（来自 MySQL 8.0.23）或[`将主更改为`](change-master-to.html)设置副本时的语句（在 MySQL 8.0.23 之前）。任何帐户都可以用于此操作，前提是它已被授予[`复制奴隶`](privileges-provided.html#priv_replication-slave)特权。您可以选择为每个副本创建不同的帐户，或者为每个副本使用相同的帐户连接到源。

尽管您不必专门为复制创建帐户，但您应该知道复制用户名和密码以纯文本形式存储在副本的连接元数据存储库中`mysql.slave_master_info`（看[第 17.2.4.2 节，“复制元数据存储库”](replica-logs-status.html)）。因此，您可能希望创建一个仅对复制过程具有权限的单独帐户，以尽量减少其他帐户受到威胁的可能性。

要创建一个新帐户，请使用[`创建用户`](create-user.html).要授予此帐户复制所需的权限，请使用[`授予`](grant.html)陈述。如果您仅出于复制目的创建帐户，则该帐户只需要[`复制奴隶`](privileges-provided.html#priv_replication-slave)特权。例如，要设置一个新用户，`重复`，它可以连接到来自任何主机的复制`例子.com`域，请在源上发布以下声明：

```
mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';
```

看[第 13.7.1 节，“账户管理声明”](account-management-statements.html)，以获取有关操纵用户帐户的声明的更多信息。

重要的

使用经过身份验证的用户帐户连接到源`cache_sha2_password`插件，您必须按照中所述设置安全连接[第 17.3.1 节，“设置复制以使用加密连接”](replication-solutions-encrypted-connections.html)，或启用未加密连接以支持使用 RSA 密钥对进行密码交换。这`cache_sha2_password`身份验证插件是从 MySQL 8.0 创建的新用户的默认插件（有关详细信息，请参阅[第 6.4.1.2 节，“缓存 SHA-2 可插入身份验证”](caching-sha2-pluggable-authentication.html)）。如果您创建或用于复制的用户帐户（由`MASTER_USER`选项）使用此身份验证插件，并且您没有使用安全连接，您必须启用基于 RSA 密钥对的密码交换才能成功连接。
