| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 
 | # cat /etc/my.cnf  # Group Replication
 server-id=30
 slow_query_log=1
 long_query_time=1
 log_queries_not_using_indexes=1
 #slow_query_log_file=/var/log/mysql/slow-query.log
 slow_query_log_file=/home/mysql/slowlog_data/slow-query.log
 # 如果SQL语句没有使用索引 该SQL会记录到慢查询日志
 log_queries_not_using_indexes=on
 #log-bin=/var/log/mysql/mgr-bin
 log-bin=/home/mysql/binlog_data/mgr-bin
 #relay-log=/var/log/mysql/mgr-relay
 relay-log=/home/mysql/relaylog_data/mgr-relay
 character_set_server=utf8mb4
 # MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
 transaction_isolation=READ-COMMITTED
 gtid_mode=on
 enforce_gtid_consistency=1
 # 强制GTID一致性
 binlog_format=row
 # 因为集群会在故障恢复时互相检查binlog的数据,所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
 log-slave-updates=1
 # binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
 binlog_checksum=NONE
 # 基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
 master_info_repository=TABLE
 relay_log_info_repository=TABLE
 # 记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
 transaction_write_set_extraction = XXHASH64
 # 加载group_replication插件
 plugin_load_add='group_replication.so'
 # 相当于此GROUP的名字,是UUID值,可以使用select uuid()生成
 group_replication_group_name = 'c44b3d6a-14a4-11ee-b2b8-fa163ea16a76'
 # 是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
 group_replication_start_on_boot = OFF
 # 本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
 group_replication_local_address = 'server-1:33061'
 # 需要接受本MGR实例控制的服务器IP地址和端口,是MGR的端口,不是数据库的端口
 group_replication_group_seeds = 'server-1:33061,server-2:33061,server-3:33061'
 # 开启引导模式,添加组成员,用于第一次搭建MGR或重建MGR的时候使用,只需要在集群内的其中一台开启
 group_replication_bootstrap_group = OFF
 group_replication_ip_allowlist="192.168.64.0/24"
 
 - 重启mysql
 # systemctl restart mysqld
 
 - 建立复制账号并启动group replication
 # 登录mysql
 mysql -uroot -p'T@Testxxxxx!'
 
 # reset master;
 # 关闭日志记录
 set SQL_LOG_BIN=0;
 # 创建用户(网段192.168.64的可以访问)
 CREATE USER 'mgr_repl'@'192.168.64.%' IDENTIFIED WITH sha256_password BY 'Mgr_repl@123456';
 # 授权
 GRANT REPLICATION SLAVE ON *.* TO 'mgr_repl'@'192.168.64.%';
 GRANT BACKUP_ADMIN ON *.* TO 'mgr_repl'@'192.168.64.%';
 # 刷新权限
 flush privileges;
 # 开启日志
 set SQL_LOG_BIN=1;
 # 构建group replication集群
 change master to master_user='mgr_repl',master_password='Mgr_repl@123456' for channel 'group_replication_recovery';
 # 设置group_replication_bootstrap_group为ON是为了标示以后加入集群的服务器以这台服务器为基准,以后加入的就不需要设置
 set global group_replication_bootstrap_group=ON;
 # 作为首个节点启动MGR集群
 start group_replication;
 # 关闭group_replication_bootstrap_group
 set global group_replication_bootstrap_group=OFF;
 # 查看mgr的状态,查询表performance_schema.replication_group_members
 select * from performance_schema.replication_group_members;
 
 
 # group相关参数查看
 show variables like 'group%';
 
 |