mysql 3节点mgr集群部署

mysql 3节点mgr集群部署,版本8.4.6

rpm安装mysql

省略

重置节点(部署出错时),执行与主节点完全相同的重置流程

shell 复制代码
sudo systemctl stop mysqld
sudo rm -rf /data/mysql/*
sudo mkdir -p /data/mysql/data /data/mysql/log /data/mysql/tmp
sudo chown -R mysql:mysql /data/mysql/
sudo vim /etc/my.cnf # 先关闭MGR相关配置,初始化之后再打开
sudo mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/data
sudo systemctl start mysqld

主节点操作

sql 复制代码
-- 设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qwer@123';

-- 创建MGR恢复用户
DROP USER 'repl'@'%';
CREATE USER 'repl'@'%' IDENTIFIED BY 'Qwer@123';
CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Qwer@123';

-- 授予所有权限
GRANT REPLICATION SLAVE, BACKUP_ADMIN, GROUP_REPLICATION_STREAM ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

-- 初始化集群
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

从节点操作

sql 复制代码
-- 关键步骤:告诉从节点用哪个用户去主节点那里克隆数据
CHANGE REPLICATION SOURCE TO SOURCE_USER='repl', SOURCE_PASSWORD='Qwer@123' FOR CHANNEL 'group_replication_recovery';
-- 启动加入流程
START GROUP_REPLICATION;

sql命令

sql 复制代码
-- 主节点查看集群状态
SELECT * FROM performance_schema.replication_group_members;
--查看插件是否生效
show plugins;

配置文件,以主节点为例

ini 复制代码
# /etc/my.cnf
[mysqld]
server_id=1
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock
log_error=/data/mysql/log/mysqld.err
tmpdir=/data/mysql/tmp
bind-address=0.0.0.0
# 开启传统加密插件,新版本默认的加密插件需要ssl
mysql-native-password=on

# Binlog

log_bin=/data/mysql/log/mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
log_replica_updates=ON

# InnoDB

innodb_buffer_pool_size=4G

# Group Replication (MGR)

plugin_load_add=group_replication.so
group_replication_group_name=qwe-asd-zxc
report_host = 10.123.123.20
group_replication_local_address=10.123.123.20:33061
group_replication_ip_allowlist=10.1.0.0/16
group_replication_group_seeds=10.123.123.20:33061,10.123.123.21:33061,10.123.123.22:33061
group_replication_start_on_boot=OFF
group_replication_single_primary_mode=ON
group_replication_enforce_update_everywhere_checks=OFF

[client]
socket=/data/mysql/mysql.sock
相关推荐
JustHappy6 小时前
古法编程秘籍(二):什么是代码模块化?别背概念,把房间收拾明白就够了
前端·后端
小江的记录本7 小时前
【JVM虚拟机】堆内存分代模型:年轻代(Eden+Survivor)、老年代、元空间Metaspace(附《思维导图》+《面试高频考点清单》)
java·前端·jvm·后端·python·spring·面试
码农小白AI7 小时前
AI报告审核加速融入自动化实验室:IACheck破解智能设备时代报告管理新挑战
运维·人工智能·自动化
utf8mb4安全女神7 小时前
克隆的虚拟机怎么更改ip地址
运维
万能的知了8 小时前
服务器托管 vs 云主机 vs 裸金属:一个决策故事
运维·服务器·云计算
杨云龙UP8 小时前
Oracle RAC / ODA 生产环境指定 PDB 启动 SOP
linux·运维·数据库·oracle
luweis9 小时前
企智孪生 ETA(3.3 认知算法层:ETA 的思维内核 3.4 基础架构:算力与弹性)【浙江联保网络 卢伟舜】
大数据·运维·线性代数·ai·矩阵·学习方法
极客老王说Agent9 小时前
屏幕理解能力是下一代自动化的关键吗?2026年自动化范式演进深度解析
运维·人工智能·ai·chatgpt·自动化
LT101579744410 小时前
2026年电商RPA选型指南:电商运营全流程自动化测评
运维·自动化·rpa
IT_陈寒10 小时前
Python闭包里藏的这个坑,差点让我加班到凌晨
前端·人工智能·后端