1 2 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%';
|