17.1.2.3 为主从复制创建单独的账户
每个从节点都通过用户名和密码连接到主节点,因此主节点上必须有一个可以让从节点登录的帐户。在设置从节点时,用户名称通过 CHANGE REPLICATION SOURCE TO 语句(从MySQL 8.0.23开始)或 CHANGE MASTER TO 语句(在MySQL 8.0.23之前)设置的 SOURCE_USER
或 MASTER_USER
选项指定。任何帐户都可以用于从节点的同步操作,只要它被授予了 REPLICATION SLAVE 权限。你可以选择为每个从节点创建不同的帐户,或者让每个从节点都使用相同的帐户连接到主节点。
虽然你不必专门为每个从节点都创建一个帐户,但是你需要知道的是:主节点的用户名和密码会以以明文形式存储在从节点的元数据存储库 mysql.slave_master_info
中(详见 第 17.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';
更多有关操作用户帐户的语句信息,请参见 第13.7.1节,“帐户管理语句”。
提示:
若主节点使用caching_sha2_password
插件来进行身份验证,您必须按照 第 17.3.1 节,“设置复制以使用加密连接” 中所述来设置安全连接,或者启用未加密的连接以支持使用 RSA 密钥对进行密码交换。从 MySQL 8.0 开始,创建新用户时候默认启用caching_sha2_password
作为身份验证(有关详细信息,请参见第 6.4.1.2 章, “Caching SHA-2 Pluggable Authentication”)。如果你创建用于主从复制(由MASTER_USER
选项指定)的用户帐户使用此身份验证插件,并且您没有使用安全连接,则必须启用基于 RSA 密钥对的密码交换才能成功连接。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: