一、MGR 介绍
MGR 集群简介
MGR 的特点
MGR 基础结构要求
MGR 使用限制:
二、部署 MGR 集群
环境准备
关闭所以服务器防护墙和slinux
systemctl stop firewalld && setenforce 0
数据库服务器规划
序号 |
IP 地址
|
主机名
|
数据库
|
端口号
|
Server ID
|
操作系统
|
1 |
192.168.0.63
|
xuegod63
|
MySQL-5.7.24
|
3306
|
100
|
CentOS 7.6
|
2 | 192.168.0.64 |
xuegod64
|
MySQL-5.7.24
|
3306
|
101
|
CentOS 7.6
|
3 | 192.168.0.65 |
xuegod65
|
MySQL-5.7.24
|
3306
|
102
|
CentOS 7.6
|
安装MySQL
所以节点安装
配置主机名解析
配置 xuegod63 主节点
重启 MySQL 服务
服务器 xuegod63.cn 上建立复制账号:
在 MySQL 服务器 xuegod63.cn 上安装 group replication 插件
启动服务器 xuegod63.cn 上 MySQL 的 group replication
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 #查看状态
测试服务器 xuegod63.cn 上的 MySQL
mysql> create database test;
mysql> use test;
mysql> create table t1 (id int primary key,name varchar(20)); #注意创建主键
mysql> insert into t1 values (1,'man');
mysql> select * from t1;
mysql> show binlog events;
集群中添加 xuegod64 主机
重启 MySQL 服务
[root@xuegod62 ~]# systemctl restart mysqld
用户授权
[root@xuegod62 ~]# mysql -u root -p123456
mysql> set SQL_LOG_BIN=0; #停掉日志记录
mysql> grant replication slave on *.* to repl@'192.168.0.%' identified by '123456';
mysql> flush privileges;
mysql> set SQL_LOG_BIN=1; #开启日志记录
mysql> change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery'; #构建 group replication 集群
安装 group replication 插件
mysql> install PLUGIN group_replication SONAME 'group_replication.so';
把实例添加到之前的复制组
mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;
mysql> start group_replication;
在 xuegod63.cn 上查看复制组状态
在新加的实例上查看数据库发现 test 库和 t1 表已经同步
集群中添加 xuegod65 主机
重启 MySQL 服务
用户授权
安装 group replication 插件
把实例添加到之前的复制组
在 xuegod63.cn 上查看复制组状态
以上单 master 节点的集群就搭建完毕!
mysql> show variables like 'group_replication%'; #查看集群参数设置列表
查看是否只读 show variables like '%read_only%';
另外两台查看
扩展-multi-primary 多主模式
第一种:在原来单主模式的主节点执行操作如下:
而对于其他的节点,执行下面的操作即可。
第二种:直接搭建多主 master 模式
在所有节点上执行,my.cnf 配置文件,vim /etc/my.cnf
查看是否只读
mysql>show variables like '%read_only%';
发现现在 read_only 都是 OFF 了