每个副本都使用 MySQL 用户名和密码连接到源,因此源上必须有一个副本可以使用的用户帐户。用户名由 SOURCE_USER
选项指定,该选项用于 CHANGE REPLICATION SOURCE TO
语句中设置副本时。任何帐户都可以用于此操作,只要它被授予了 REPLICATION SLAVE
权限。你可以为每个副本创建不同的帐户,也可以使用同一个帐户连接到源。
虽然你不需要专门为复制创建帐户,但你应该知道副本的用户名和密码以明文形式存储在副本的连接元数据存储库 mysql.slave_master_info
中(见 第 19.2.4.2 节,“复制元数据存储库”)。因此,你可能想要创建一个只有复制过程权限的独立帐户,以减少其他帐户的泄露可能性。
要创建新的帐户,请使用 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 节,“帐户管理语句”,以获取更多关于用户帐户管理语句的信息。
要使用用户帐户连接到源,该帐户使用 caching_sha2_password
插件进行身份验证,你必须设置安全连接,如 第 19.3.1 节,“设置使用加密连接的复制” 所述,或者启用不安全连接以支持使用 RSA 密钥对的密码交换。caching_sha2_password
身份验证插件是新用户的默认设置(见 第 8.4.1.2 节,“caching SHA-2 可插拔身份验证”)。如果你创建或使用的用户帐户(由 SOURCE_USER
选项指定)使用该身份验证插件,并且你不使用安全连接,那么你必须启用 RSA 密钥对基于的密码交换以便成功连接。