组复制安装部署 | 全方位认识 MySQL 8( 三 )


4)如果执行了第2步骤禁用了二进制日志记录,则在创建完成复制用户之后需要立即启用它,语句如下:
mysql> SET SQL_LOG_BIN=1;
5)配置好用户后,使用TO语句进行配置复制,使用上述步骤中创建的复制用户作为用户凭证,复制通道指定为,这样,就可以通过分布式恢复或远程克隆操作进行状态传输 。语句如下(注意,根据你创建的实际用户名和密码替换和字符串):
# 需要正确配置复制用户的用户名和密码,否则,会因为用户凭证不正确而无法连接到donor节点来执行状态传输,因为会造成该节点无法加入组mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';
在组复制中使用SHA-2用户凭证插件 。PS:为组复制通道启用SSL支持的配置示例如下:
# 在所有joiner节点和活跃组成员的my.cnf中设置如下参数[mysqld]ssl_ca = "cacert.pem"ssl_capath = "/.../ca_directory"ssl_cert = "server-cert.pem"ssl_cipher = "DHE-RSA-AEs256-SHA"ssl_crl = "crl-server-revoked.crl"ssl_crlpath = "/.../crl_directory"ssl_key = "server-key.pem"# 在donor节点中创建复制用户donor> SET SQL_LOG_BIN=0;donor> CREATE USER 'rec_ssl_user'@'%' REQUIRE SSL;donor> GRANT replication slave ON *.* TO 'rec_ssl_user'@'%';donor> GRANT BACKUP_ADMIN ON *.* TO 'rec_ssl_user'@'%';donor> SET SQL_LOG_BIN=1;# 在joiner节点中,执行如下CHANGE MASTER语句new_member> CHANGE MASTER TO MASTER_USER="rec_ssl_user" FOR CHANNEL "group_replication_recovery";# 在joiner节点中,可以动态配置如下系统变量(动态配置完成之后需要将其持久化到my.cnf中)new_member> SET GLOBAL group_replication_recovery_use_ssl=1;new_member> SET GLOBAL group_replication_recovery_ssl_ca= '.../cacert.pem';new_member> SET GLOBAL group_replication_recovery_ssl_cert= '.../client-cert.pem';new_member> SET GLOBAL group_replication_recovery_ssl_key= '.../client-key.pem';
关于加密连接配置的参考链接:2.1.4. 启动组复制 配置并启动名为s1的MySQL 之后(注:这里指的是启动数据库实例),如果启动MySQL 之前在f配置文件中配置系统变量='.so',则MySQL 启动时会自动加载MGR插件,如果未在配置文件中指定过加载插件,则,此时你需要手工执行插件加载,语句如下:
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
注意:mysql.用户是用于加载MGR插件使用的,在加载MGR插件之前,该用户必须存在,所以,如果你使用的版本是比较老旧的版本,则可能不存在这个用户,此时,你需要先使用命令升级到新版本,然后再操作加载MGR插件,否则,在加载MGR插件时会报错:"There was an error whentothewith user: mysql.@. Make sure the user isin theand thatwas ran after a.." 。另外,有数据库安全加固需求的场景,在做加固时需要注意,不要将该用户误删除了 。当MGR插件加载成功之后,可以通过如下语句进行简单查看 。
mysql> SHOW PLUGINS;+----------------------------+----------+--------------------+----------------------+-------------+| Name | Status | Type | Library | License |+----------------------------+----------+--------------------+----------------------+-------------+......| group_replication | ACTIVE | GROUP REPLICATION | group_replication.so | GPL |+------------------------------------------+----------+--------------------+-----------------------+---------+47 rows in set (0.01 sec)
2.1.5. 引导组 第一次启动组的过程称为引导 。使用系统变量来引导一个组 。引导程序只能由单个MySQL (这里指的是引导组的MySQL )执行一次 。这就是为什么系统变量不在f配置文件中持久化的原因 。如果将其保存在配置文件中(=ON),则在重新启动组成员时,组中的所有成员都将会尝试引导组,而这些组的名称都是相同的,这将导致组产生脑裂 。因此,为了安全地引导组,需要在第一个MySQL 启动完成之后,登录到数据库中,手工执行如下语句完成组的引导(该参数也可用于重新引导组,先设置为OFF,再设置为ON) 。