Node | Host | IP | OS |
---|---|---|---|
Node1 | DB1 | 192.168.56.104 | Centos 8 |
Node2 | DB2 | 192.168.56.105 | Centos 8 |
Node3 | DB3 | 192.168.56.106 | Centos 8 |
1、分别安装部署组内MySQL实例
组复制是MySQL内置的插件,安装完MySQL实例后即可进行MGR配置,无需安装其他组件。
2、配置第一个实例
2.1、存储引擎
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
2.2、复制框架
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
如果数据库版本 ≥ 8.0.20,还需要加上如下配置
binlog_checksum=NONE
如果数据库版本早于8.0.3,还需要加上如下配置
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
2.3、组复制设置
plugin_load_add='group_replication.so'
group_replication_group_name="2e8c9b2e-92f0-11ec-b909-0242ac120002" #必须是有效的UUID,用于设置binlog中组复制事件的GTIDs。
group_replication_start_on_boot=off
group_replication_local_address= "mgr_0001:33061"
group_replication_group_seeds= "mgr_0001:33061,mgr_0002:33061,mgr_0003:33061"
group_replication_bootstrap_group=off #在任何时候,组中最多只能有一个成员能把该参数配置为on
3、分布式恢复用户认证
当有新成员加入到组复制时,组复制使用分布式恢复进程与新加入的成员进行同步。
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'Chaofeng52_5';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Chaofeng52_5' FOR CHANNEL 'group_replication_recovery';
4、启动组复制
调整SeLinux设置
setsebool -P mysql_connect_any 1
否则会报错:[GCS] Error connecting to the local group communication engine instance.
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
执行成功后查看组信息:
5、添加实例到复制组
根据具体情况修改配置文件
创建分布式恢复用户
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'Chaofeng52_5';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Chaofeng52_5' FOR CHANNEL 'group_replication_recovery';
然后启动组复制
START GROUP_REPLICATION;
执行成功后查看组信息:
继续添加第三个实例
执行成功后查看组信息: