MySQL搭建Group Replicatiion
目录
1. 1. 安装MySQ(>=5.7.19)
2. 2. GR准备工作
2.1. 1. 更改配置文件
loose-为配置前缀,后边才是变量名。 正常情况下配置文件里参数是必须可用的,也就是必须先安装插件,后改配置文件,否则MySQL启动时会报错。加loose-前缀后,如果参数不存在,会先忽略报错,待插件安装后,会自动将对应参数设置为配置文件的值。
# group replication
binlog_checksum=NONE
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = 'a0151174-f716-428f-a654-dd5dd4915b31' #必须为uuid格式
loose-group_replication_start_on_boot = off
loose-group_replication_local_address = '10.52.29.7:33061' #内部端口(和MySQL对外端口不能一样)
loose-group_replication_group_seeds ='10.52.29.7:33061,10.164.158.39:33061,100.87.68.39:33061'
loose-group_replication_ip_whitelist='10.52.29.7,10.164.158.39,100.87.68.39'
loose-group_replication_bootstrap_group = off
## 多主模式
loose-group_replication_single_primary_mode=false
loose-group_replication_enforce_update_everywhere_checks=true
## 单主模式
loose-group_replication_single_primary_mode=true
loose-group_replication_enforce_update_everywhere_checks=false
2.2. 2.搭建复制关系
修改
hostnameGR会使用
hostname做master_host,所以必须:- 修改本机
/etc/hostname,并配置全局/etc/hosts文件 - 使用
hostname命令修改内存中hostname - 修改后需重启
MySQL(使MySQL加载更新后的hostname值,在MySQL内部hostname是只读变量)
- 修改本机
创建复制用户
注意:
MGR通过GTID确认数据一致性,所以需要保证接入实例GTID一致,因此创建复制用户时需要设置set sql_log_bin=offset session sql_log_bin=off; grant select,replication client,replication slave on *.* to 'repl_user'@'host ip' identified by 'repl_passwd'; set session sql_log_bin=on;搭建复制关系
change master to master_user='repl_user',master_password='repl_passwd' for channel 'group_replication_recovery';2.3. 3. 启动
MGR安装插件
install PLUGIN group_replication SONAME 'group_replication.so';首个节点启动
group replicationSET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;其他节点启动
START GROUP_REPLICATION;
3. 核查集群状态
select * from mysql.slave_master_info\G
select * from performance_schema.replication_group_members;
4. 注意事项
- 安装时常见错误
group_replication_group_name不是uuid格式- 未设置
group_replication_ip_whitelist,节点不能互通 - 未设置系统
hostname,节点无法从集群搭建复制关系 chanel_name名字不是group_replication_recovery- 未设置
sql_log_bin=off导致各节点gtid不一致 - 未开启
performance_schema,导致集群状态没办法查看
