## 1. MySQL参数设置
新的节点需要提前准备如下参数,可参考已有节点的设置
确保uuid和server id和其他节点不一致
**新节点**
```
# BINARY LOGGING #
log-bin = /data/db5722/mysql-bin
relay-log = /data/db5722/relay-bin
expire-logs-days = 7
sync-binlog = 1
server-id = 13657
log_slave_updates = ON
# GTID #
gtid_mode = ON
enforce_gtid_consistency = ON
binlog_format = ROW
binlog_checksum = NONE
master_info_repository = TABLE
relay_log_info_repository = TABLE
slave_parallel_type = LOGICAL_CLOCK
slave_parallel_workers = 4
slave_preserve_commit_order = ON
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
```
## 2.新增节点配置用户
这里账号密码和集群保持一致
**新节点**
```
SET SQL_LOG_BIN=0;
CREATE USER replicate@'%';
GRANT REPLICATION SLAVE ON *.* TO rpl@'%' IDENTIFIED BY 'rpl';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
```
## 3. 安装MGR插件
**新节点**
```
安装
mysql>INSTALL PLUGIN group_replication SONAME 'group_replication.so';
确认
mysql> SHOW PLUGINS;
| group_replication| ACTIVE| GROUP REPLICATION | group_replication.so | PROPRIETARY |
```
## 4. 配置MGR参数
**新节点**
停止MYSQL服务后修改
记得添加到配置文件
group_replication_group_name 和其他节点一致
group_replication_start_on_boot暂时设置为OFF
group_replication_local_addres填写本机的IP
group_replication_group_seeds 填写所有节点的IP
```
# MGR
#transaction_write_set_extraction = XXHASH64
group_replication_group_name = "69082df2-3dda-4703-8da1-7c8ecda9664f"
group_replication_start_on_boot = off
group_replication_local_address = "192.168.201.136:2101"
group_replication_group_seeds = "192.168.201.135:2101,192.168.201.136:2101,192.168.201.137:2101"
group_replication_bootstrap_group = OFF
group_replication_single_primary_mode = TRUE
group_replication_enforce_update_everywhere_checks = FALSE
```
修改完成后重启服务。
其中group_replication_group_seeds 需要在所有节点增加新加入的节点的IP
**其他节点**
```
set global group_replication_group_seeds="192.168.201.135:2101,192.168.201.136:2101,192.168.201.137:2101"
```
## 4. 加入MGR集群
### 4.1 导出数据
在数据最新的节点上执行mysqldump全量导出
**其中一个节点**
```
mysqldump -uroot -p123456 -q --single-transaction --master-data=2 -B DB_Name > /root/DB_Name.sql
```
### 4.2 导入数据
**新节点**
之后在新增节点执行数据导入
```
reset master;
source DB_Name.sql
```
如果使用xtrabackup备份的,需要
```
reset master
set @@GLOBAL.GTID_PURGED='e99ae99a-811d-11e9-9ca2-0050568cef02:1-59387'
```
### 4.3 加入集群
之后加入MGR集群
**新节点**
```
mysql> CHANGE MASTER TO MASTER_USER='rpl',MASTER_PASSWORD='rpl' FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;
```
最后将新加入的节点MGR自启动配置为on,参数文件修改
```
group_replication_start_on_boot=on
```
## 5.检查节点
最后我们检查是否加入成功
**所有节点**
查询下列视图
```
SELECT * FROM performance_schema.replication_group_members;
```
查询是否为写入节点
```
SELECT * FROM sys.gr_member_routing_candidate_status;
```