MGR三节点高可用集群
一、安装MySQL
二、配置MySQL配置文件/etc/my.cnf
• 在每台节点添加MGR配置(唯一的server_id)
[mysqld]
server_id=130 # n1:130, n2:131, n3:132
log_bin=binlog
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
loose-group_replication_start_on_boot=OFF
loose-group_replication_local_address="n1:33061" # n1 对应本机 IP
loose-group_replication_group_seeds="n1:33061,n2:33061,n2:33061"
loose-group_replication_bootstrap_group=OFF
loose-group_replication_single_primary_mode=ON
loose-group_replication_enforce_update_everywhere_checks=OFF
plugin_load_add='group_replication.so'
三、创建MGR复制账号(在主节点执行)
• 创建复制账号
create user if not exists 'repl'@'%' identified with mysql_native_password by '123456';
• 授权
grant replication slave,replication client on *.* to 'repl'@'%';
flush privileges;
四、主节点启动组复制(首次点火)
set global group_replication_bootstrap_group=ON; #临时引导集群
start group_replication;
set global group_replication_bootstrap_group=OFF;
五、从节点启动组复制
1.清理旧残留状态(如果之前尝试过加入)
stop group_replication;
reset slave all for channel 'group_replication_recovery';
2.配置恢复通道账号
change replication source to
source_user='repl',
source_password='123456'
for channel 'group_replication_recovery';
3.启动组复制
start group_replication;
六、验证集群状态
select member_host,member_state,member_role from performance_schema.replication_group_members;
预期输出:
n1 ONLINE PRIMARY
n2 ONLINE SECONDARY
n3 ONLINE SECONDARY