19.1.2.3 创建复制用户
每个副本都使用 MySQL 用户名和密码连接到源,因此在副本连接到源时,源上必须存在一个用户账户,该账户可以用来连接。用户名称由 SOURCE_USER
选项指定,在设置副本时使用 CHANGE REPLICATION SOURCE TO
语句时指定。任何账户都可以用于这个操作,只要该账户被授予了 REPLICATION SLAVE
权限。你可以选择为每个副本创建不同的账户,也可以使用同一个账户连接到源。
虽然你不需要为复制创建专门的账户,但是你应该注意复制用户名称和密码在副本的连接元数据存储库 mysql.slave_master_info
中存储在明文(见 第19.2.4.2节,“Replication Metadata Repositories”)。因此,你可能想创建一个专门用于复制的账户,该账户只有复制过程的权限,以最小化其他账户的可能性。
要创建新账户,请使用 CREATE USER
。要授予该账户复制所需的权限,请使用 GRANT
语句。如果你创建了专门用于复制的账户,该账户只需要 REPLICATION SLAVE
权限。例如,要设置一个新的用户 repl
,该用户可以从 example.com
域中的任何主机连接,执行以下语句在源上:
mysql> CREATE USER 'repl'@'%.example.com' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.example.com';
查看 第15.7.1节,“Account Management Statements”,了解更多关于用户账户操作语句的信息。
要使用一个账户连接到源,该账户使用 caching_sha2_password
插件进行身份验证,你必须设置安全连接,如 第19.3.1节,“Setting Up Replication to Use Encrypted Connections” 中所述,或者启用未加密连接以支持密码交换使用 RSA 密钥对。 caching_sha2_password
身份验证插件是默认的新用户(见 第8.4.1.2节,“Caching SHA-2 Pluggable Authentication”)。如果你创建或使用的账户(指定的 SOURCE_USER
选项)使用这个身份验证插件,并且你不使用安全连接,你必须启用 RSA 密钥对基于密码交换以确保连接成功。