一、实验环境介绍
cpu:16核心
内存:64G
操作系统:centos7.8
mysql版本:mysql8.0
ip地址规划:10.99.19.74; 10.99.19.75; 10.99.19.76
二、安装mysql
https://blog.csdn.net/zyj81092211/article/details/107489793
三、安装mysql-shell(75上安装)
yum install mysql-shell
四、安装mysql-router(75上安装)
yum install mysql-router
五、更改hostname和hosts解析
10.99.19.74 s1
10.99.19.75 s2
10.99.19.76 s3
六、更改my.cnf参数
74:
#组复制参数
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=74
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
#组复制节点参数
plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "s1:33061"
group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"
group_replication_bootstrap_group=off
75:
#组复制参数
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=75
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
#组复制节点参数
plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "s2:33061"
group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"
group_replication_bootstrap_group=off
76:
#组复制参数
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
server_id=76
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE
transaction_write_set_extraction=XXHASH64
#组复制节点参数
plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "s3:33061"
group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"
group_replication_bootstrap_group=off
七、创建集群用户
三台全部执行
mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY '1qazXSW@';
mysql> ALTER USER 'rpl_user'@'%' IDENTIFIED WITH mysql_native_password BY '1qazXSW@';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
####创建innodb cluster 管理用户###
mysql> CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1qazXSW@';
mysql> GRANT all on *.* to 'root'@'%' with grant option;
mysql> FLUSH PRIVILEGES;
mysql> SET SQL_LOG_BIN=1;
八、查看模块是否启用
mysql> SHOW PLUGINS;
+----------------------------+----------+--------------------+----------------------+-------------+
| Name | Status | Type | Library | License |
+----------------------------+----------+--------------------+----------------------+-------------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | PROPRIETARY |
(...)
| group_replication | ACTIVE | GROUP REPLICATION | group_replication.so | PROPRIETARY |
+----------------------------+----------+--------------------+----------------------+-------------+
九、引导组复制
主节点
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
mysql> SELECT * FROM performance_schema.replication_group_members;
从节点加入
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='1qazXSW@' FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;
十、迁移组复制集群到innodb cluster(迁移后的集群各种问题,mysqlroute无法连接,无法重启集群等)
登录到集群
mysqlsh --uri [email protected]:3306
创建innodb cluster
MySQL 10.99.19.75:3306 ssl JS > var cluster = dba.createCluster('dc', {adoptFromGR: true});
查看集群状态
MySQL 10.99.19.75:3306 ssl JS > cluster.status()