MGR多主模式配置
本文档详细介绍了MySQL Group Replication(MGR)集群的部署流程。首先规划了3个节点的基础环境配置,包括主机名、IP地址和操作系统信息。准备工作包括关闭防火墙、设置主机名和修改hosts文件。安装步骤涵盖MySQL 8.0的YUM源安装、服务启动和安全初始化。集群配置重点包括:修改my.cnf配置文件(设置server_id、GTID等参数)、创建复制用户、配置用户凭证以及启
一、基础环境
| 主机名 | IP | 端口 | OS | MySQL |
|---|---|---|---|---|
| mgr-node1 | 192.168.205.147 |
3306\33060\33061 |
CentOS7 |
8.0.46 |
| mgr-node2 | 192.168.205.159 |
3306\33060\33061 |
CentOS7 |
8.0.46 |
| mgr-node3 | 192.168.205.160 |
3306\33060\33061 |
CentOS7 |
8.0.46 |
二、准备工作(所有节点都执行)
1.关闭防火墙/禁用selinux(临时)
systemctl stop firewalld
systemctl disable firewalld
setenforce 02.修改主机名(集群查找节点时需要,如果不设置主机名,在mysql配置文件中添加report_host)
hostnamectl set-hostname mgr-node1
hostnamectl set-hostname mgr-node2
hostnamectl set-hostname mgr-node34.主机名解析
vim /etc/hosts
192.168.205.147 mgr-node1
192.168.205.159 mgr-node2
192.168.205.160 mgr-node3
三、安装 MySQL(所有节点执行)
# 下载并安装 MySQL YUM 源
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
# 安装 MySQL 服务器
yum install -y mysql-community-server
# 启动 MySQL 服务
systemctl start mysqld# 安全初始化 MySQL
grep 'pass' /var/log/mysqld.log
mysqladmin -uroot -p'临时密码' password '新设密码'
mysql -uroot -p"新设密码"
四、配置集群(所有节点)
1.配置my.cnf文件
# 每个节点的server_id不一致,要确保唯一性
server_id=1
# 开启gtid
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
master_info_repository=TABLE
relay_log_info_repository=TABLE
# MGR自身的独有配置参数
plugin_load_add='group_replication.so'
# 使用有效的UUID(可以用 SELECT UUID() 生成)
group_replication_group_name="69e55a42-4b83-11f1-8168-000c2998186c"
group_replication_start_on_boot=off
# 本节点地址
group_replication_local_address= "192.168.205.147:33061"
# 集群成员子节点
group_replication_group_seeds= "192.168.205.147:33061,192.168.205.159:33061,192.168.205.160:33061"
group_replication_bootstrap_group=off
#(MGR)中用于解决节点加入集群时遇到认证错误的设置,通常指向 caching_sha2_password 插件带来的公钥交换问题
group_replication_recovery_get_public_key=ON
# 多主模式
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON
2.创建复制用户
[root@mgr-node1 ~]# mysql -uroot -p'密码'
mysql> set sql_log_bin=0;
mysql> create user repl@'%' identified by 'Repl@123';
mysql> grant REPLICATION SLAVE,CONNECTION_ADMIN,BACKUP_AD MIN,GROUP_REPLICATION_STREAM on *.* to repl@'%';
mysql> flush privileges;
mysql> set sql_log_bin=1;
3.配置用户凭证
mysql> CHANGE REPLICATION SOURCE TO SOURCE_USER='repl', SOURCE_P ASSWORD='Repl@123' FOR CHANNEL 'group_replication_recovery';
4.启动复制组
# 确保group_replication的状态为active
mysql> show plugins;
#任意选择某一节点执行
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;# 剩余的节点执行
mysql> START GROUP_REPLICATION;# 查看组信息,所有节点的 MEMBER_ROLE 都为 PRIMARY
mysql> SELECT * FROM performance_schema.replication_group_members;

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)