一、基础环境

主机名 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 0 

2.修改主机名(集群查找节点时需要,如果不设置主机名,在mysql配置文件中添加report_host)
 hostnamectl set-hostname mgr-node1
 hostnamectl set-hostname mgr-node2
 hostnamectl set-hostname mgr-node3

4.主机名解析
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;

Logo

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

更多推荐