当前位置: 首页 > news >正文

mysql——搭建MGR集群

MySQL的MGR(Group Replication,组复制)是一种基于分布式协议的高可用、高一致性解决方案‌;

分为两种模式:

  • 单主模式:仅一个节点可写,其余为只读节点,避免多写冲突,适合大多数业务场景‌;
  • 多主模式:所有节点均可读写,但需业务层处理潜在冲突,复杂度较高‌;

需要3台主机,构建一主两从或者三个全主;

搭建步骤:(如果中途出现错误可以查看/var/log/mysql/error.log错误日志)

1.安装mysql,至少8.0版本,安装MGR插件;

三台主机分别登录mysql,执行安装MGR命令:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

(安装完mysql,默认用户名密码在/etc/mysql/debian.cnf中,使用登录并修改自己的root密码)

查看插件命令:

SHOW PLUGINS;

2.配置hosts和主机名;

三台主机分别修改/etc/hosts文件:

sudo vi /etc/hosts,追加:

192.168.1.84 mysqla
192.168.1.85 mysqlb
192.168.1.86 mysqlc

三台主机分别设置自己的主机名:

sudo hostnamectl set-hostname 上面host里自己ip的主机名

例如84的主机:

3.修改mysql配置文件;

三台主机分别编辑mysql配置文件:

sudo vi /etc/mysql/my.cnf

分别添加:

(为了直接开启多主模式,设置了single_primary_mode为OFF、enforce_update_everywhere_checks为ON,默认不设置是单主模式,即mode ON和checks OFF)

(三台主机中,server_id要设置成不同的,local_address要设置成hosts中自己的主机名称,group_seeds是三台主机的,端口不是3306而是同步使用的新的端口,自己指定一个)

(group_name的uuid可以使用linux命令:new_uuid=$(uuidgen);echo $new_uuid; 生成唯一uuid;

[mysqld]
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
default_authentication_plugin=mysql_native_password

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="76aaeada-726c-47c0-af01-8aca50604f99"
loose-group_replication_start_on_boot=OFF
loose-group_replication_local_address="mysqla:33306"
loose-group_replication_group_seeds="mysqla:33306,mysqlb:33306,mysqlc:33306"
loose-group_replication_bootstrap_group=OFF
group_replication_single_primary_mode=OFF
group_replication_enforce_update_everywhere_checks=ON

例如86主机:

配置好保存退出vi并执行:

sudo systemctl daemon-reload

然后重启mysql服务:

sudo systemctl restart mysql

4.组建MGR;

三台主机分别登陆mysql,创建集群同步用户,执行:

set sql_log_bin=0;
DROP USER IF EXISTS 'rpl_user'@'%';
CREATE USER rpl_user@'%' IDENTIFIED BY '123456abcd';
grant replication slave on *.* to rpl_user@'%';
flush privileges;
set sql_log_bin=1;
RESET MASTER;

然后,随便选其中一个服务当主服务执行:

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

再在剩下两个服务中执行:

CHANGE MASTER TO MASTER_USER="rpl_user", MASTER_PASSWORD="123456abcd" FOR CHANNEL 'group_replication_recovery';
START GROUP_REPLICATION;

到此集群就建好了;

5.查看集群状态;

执行mysql命令:

SELECT * FROM performance_schema.replication_group_members;

(自己的member id查看:SHOW VARIABLES LIKE 'server_uuid';)

(如果自己的uuid跟别的服务重复了,可用root权限删除/var/lib/mysql/auto.cnf文件,重启mysql自动生成一个)

单主多主模式切换:

主要就是修改group_replication_single_primary_mode和group_replication_enforce_update_everywhere_checks配置,配置文件里配置或者直接命令修改;

先三个主机分别执行:

单主到多主:(先mode=OFF)
STOP GROUP_REPLICATION;
set global group_replication_single_primary_mode=OFF;
set global group_replication_enforce_update_everywhere_checks=ON;
多主到单主:(注意先关checks)
STOP GROUP_REPLICATION;
set global group_replication_enforce_update_everywhere_checks=OFF;
set global group_replication_single_primary_mode=ON;


再选一个构建主节点:
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

其余两个加入从节点:
START GROUP_REPLICATION;

http://www.lryc.cn/news/591651.html

相关文章:

  • Python清屏方法大全 - 终端清屏的几种实现方式
  • 【Android】EditText使用和监听
  • ELN:生物医药科研的数字化引擎——衍因科技引领高效创新
  • H7-TOOL脱机下载后,自动重连RTT,CAN和串口助手三合一模式方法,方便项目测试(2025-07-16)
  • Cocos游戏中UI跟随模型移动,例如人物头上的血条、昵称条等
  • 对话弋途科技:当AI重构汽车大脑,一场车载操作系统的“觉醒年代“开始了
  • 数据呈现:让图表说话,从数字到洞察的可视化艺术
  • springmvc跨域解决方案
  • 移动安全工具-spd_dump
  • FOC算法中SIMULINK一些常用模块(2)-Permanent Magnet Synchronous Machine模块
  • 五分钟学会大数定律【笔记】
  • mysql 字符集不一致导致索引失效问题
  • 以Streamable HTTP方式访问mcp server的过程
  • 【机器学习实战【七】】机器学习特征选定与评估
  • C 语言基础第 08 天:数组与冒泡排序
  • c#笔记之方法的形参列表以及方法重载
  • ubuntu22 npm install electron --save-dev 失败
  • 设计模式是什么呢?
  • JAVA后端开发——success(data) vs toAjax(rows): 何时用
  • .NET Core EFCore零基础快速入门简单使用
  • MyUI1.0全新现代化 Vue.js 组件库框架上线
  • Bell不等式赋能机器学习:微算法科技MLGO一种基于量子纠缠的监督量子分类器训练算法技术
  • mongodb-org-server_8.0.11_amd64.deb 这个文件怎么安装
  • MySQL配置性能优化
  • 3D材质总监的“光影魔法”:用Substance Sampler AI,“擦除”照片中的光影
  • 云原生技术与应用-Kubernetes架构原理与集群环境部署
  • AI驱动,精准计算光伏电站每一小时的发电量
  • Android设备标识符详解:IMEI、ANDROID_ID与OAID
  • 深度解析:基于EasyX的C++黑白棋AI实现 | 算法核心+图形化实战
  • 当下主流摄像头及其核心参数详解