mysql mgr集群部署

详解mysql数据库官方高可用方案——MGR理论篇 一个服务器被怀疑意味这该服务器无响应(mute),当服务器A在一段时间内为收到服务器B的信息,一个超时异常发生并且服务器B会被标记为 suspicion状态,这意味着,组内其他的成员服务器会协调将其踢出复制组,如果一个服务器无法和其余的服务器通信,则他会怀疑其他服务器都故障了.由于其服务器和组内其他服务器达成一致,它自身的怀疑是没有结果的,这时他无法执行任何本地事务。重新配置过程中需要大多数节点同意,即组内故障服务器低于大多数,否则视图无法更新且会阻塞事务的执行以防止脑裂的发生,这时就需要人为的干预了。 阅读详情

一、前言

      mysql mgr集群是为了实现mysql高可用,分为单主集群和多主集群,单主集群只有一个主节点可写,节点发生故障时,自动进行主从的故障切换,多主集群所有节点都可写,当节点发生故障时,将故障节点剔除出集群

工作流程

1.当master节点执行写操作时,该操作会在本地执行并生成事务日志

2.事务日志会通过组通信服务(Group Communication Service,GCS)广播到所有组成员

3.所有组成员接收到事务日志后,会进行一致性检查并通过投票机制决定是否提交该事务

4.只有在所有组成员都确认接收到并同意提交事务后,事务才会在所有节点上提交,确保数据的一致性

主机信息

nameipport
mysql0110.1.60.1213306、33061
mysql0210.1.60.1223306、33061
mysql0310.1.60.1233306、33061

二、部署(单主节点)

每个节点部署mysql服务

mysql官网找到mysql5.7版本yum包,使用wget命令下载

wget -i -c 

http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装mysql yum源

 yum -y install mysql57-community-release-el7-10.noarch.rpm

 更改mysql yum源配置,将需要安装得5.7版本的gpgchenck项改为0

执行yum安装mysql

 yum -y install mysql-community-server

启动mysql服务

systemctl start mysqld && systemctl enable mysqld

通过mysql日志文件查看初始登录密码

cat /var/log/mysqld.log |grep password

使用从日志中得到得密码登录数据库

 mysql -u root -p

修改默认密码

alter user 'root'@'localhost' identified by '新密码';

flush privileges;

编辑配置文件

vi /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

server-id=1      #每个节点配置的id不能相同
gtid_mode=ON    #开启gtid
enforce_gtid_consistency=ON     #开启gtid的强一致性,mgr集群配置必须开启,用以保证事务的一致性
binlog_checksum=NONE    #禁用二进制事件校验

log_bin=binlog         #开启binlog日志
log_slave_updates=ON   #开启级联复制
binlog_format=ROW      #以行的形式记录,mgr集群必须配置以行的形式记录
master_info_repository=TABLE   
relay_log_info_repository=TABLE

transaction_write_set_extraction=XXHASH64   #server必须为每个事务收集写集合,使用XXHASH64哈希算法将其编码为散列
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"   #创建组名UUID,自定义编辑
loose-group_replication_start_on_boot=off    #server启动时不自启组复制,为了避免每次启动自动引导具有相同名称的第二个组,所以设置为OFF
loose-group_replication_local_address="10.1.60.121:33061"   #配置当前节点mgr服务地址和端口,该端口为自定义的端口
loose-group_replication_group_seeds="10.1.60.121:33061,10.1.60.122:33061,10.1.60.123:33061"
#配置mgr集群所有节点               
loose-group_replication_bootstrap_group=off
report_host=10.1.60.121   #配置当前节点地址
report_port=3306        #配置mysql服务端口

重启mysql服务使配置生效

systemctl restart mysqld

各节点配置mgr插件,并设置同步账号

mysql -u root -p

安装mgr插件

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

关闭binlog日志记录

set SQL_LOG_BIN=0;

创建mgr集群同步账号

create user mgr@'%' identified by '12345678';

设置账号权限

grant replication slave on *.* to mgr@'%';

flush privileges;

开启binlog日志记录

set SQL_LOG_BIN=1;

设置同步账号

CHANGE MASTER TO MASTER_USER='mgr', MASTER_PASSWORD='12345678' FOR CHANNEL 'group_replication_recovery';

创建mgr集群

选一个主节点创建mgr集群,这里选用10.1.60.121为主节点

mysql -u root -p

配置后面加入集群的节点以该主节点为基准

SET GLOBAL group_replication_bootstrap_group=ON;

作为首个节点启动mgr集群

START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

 查看mgr集群信息

SELECT * FROM performance_schema.replication_group_members;

其余两个节点执行以下命令加入mgr集群

START GROUP_REPLICATION;

查看mgr集群信息

 SELECT * FROM performance_schema.replication_group_members;

状态为online即正常 

查询mgr集群中,哪个节点为主节点

select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';
或者以下命令
SHOW STATUS LIKE 'group_replication_primary_member'

也可以通过查看是否为read_only确定主节点

show variables like '%read_only%';

 

至此mgr单主集群搭建完成,主节点可写,从节点可读,主节点发生故障后,会自动在从节点中选主

mgr集群节点发生故障,恢复后需要手动启动组复制功能才会从新加入集群中 

mysql -u root -p
START GROUP_REPLICATION;
SELECT * FROM performance_schema.replication_group_members;

【MySQL高可用集群】MySQL的MGR搭建 如果属性 group_replication_single_primary_mode =ON,则其他后启动组复制服务的节点会以slave 节点的身份自动加入复制组 ,最终组成一主多从集群。属性 group_replication_bootstrap_group 配置是否引导组复制,如果某个节点设置此属性为ON,则先启动此节点创建一个组服务并成为 master 节点,接受其他后启动节点加入组复制集群。10.53.207.20 作为引导节点启动组复制服务,此节点将作为主节点接收其他节点加入集群。 阅读详情

相关推荐

什么是MGR高可用(完整版)

文章介绍了MGR的组复制技术架构、单主和多主模式、节点管理、故障检测、容错机制

2201_75878485的博客 2078

MySQL MGR

ProxySQL 介绍 ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 MGR 单主 + VIP MGR MGR (MySQL Group Replication)是MySQL自带的一个插件,可以灵活部署。MySQL ...

summer_fish的专栏 5052

基于MySQL 8.0安装部署MGR集群(单组模式)

一、环境介绍 虚拟机:Oracle VM VirtualBox 5.0.24 操作系统:CentOS Linux release 7.7.1908 (Core) MySQL服务器:8.0.11 MySQL Community Server - GPL 软件下载地址 主从方式:基于GTID的搭建 主从同步方式:异步复制 master_ip:192.168.56.101 slave1_ip:192.1...

wangbin9536的博客 1540

万字详解 MySQL MGR 高可用集群搭建

MGR(MySQL Group Replication)是MySQL 5.7.17版本诞生的,是MySQL自带的一个插件,可以灵活部署。保证数据一致性又可以自动切换,具备故障检测功能、支持多节点写入。集群是多个MySQL Server节点共同组成的分布式集群,每个Server都有完整的副本,它是基于ROW格式的二进制日志文件和GTID特性。在单主模式下, 组复制具有自动选主功能,每次只有一个 server成员可以作为主节点。单主模式 group 内只有一台节点可写可读,其他节点只可以读。

保持学习 9300

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 520

如何在 Ubuntu 24.04 或 22.04 上安装和使用 GDebi

本文介绍了在Ubuntu 24.04上安装和使用GDebi的方法。GDebi是DPKG的轻量级替代品,能够自动解析并安装.deb包的依赖项。文章详细说明了系统更新、安装GDebi的步骤,并演示了通过GUI和CLI两种方式安装.deb包的操作流程。此外,还提供了验证安装和卸载包的方法。GDebi虽然非必需,但为用户提供了处理依赖项的另一种选择,适合需要安装本地Debian包的用户。

山岚的运维笔记 1977

手动部署Mysql MGR集群

手动部署Mysql MGR集群

步荀仙的博客 1043

iPhone免越狱Git服务器搭建教程-iSH

iPhone免越狱Git服务器搭建教程

jts666的博客 4427

centos linux环境用docker进行MySql的MGR集群部署及验证

本文描述了linux服务器用docker进行MySql的MGR集群部署步骤,以及验证主从同步和单主多主模式的切换,并附录了部署常见问题的解决方法(如从站启动问题-GTID事务冲突)等

xingyuemengjin的博客 1227

信噪比(Signal-to-Noise Ratio, SNR)详细介绍

信噪比(Signal-to-Noise Ratio,SNR)是衡量信号质量的重要参数,表示有用信号的功率与背景噪声功率的比值。其中,\( P_{\text{signal}} \) 表示信号功率,\( P_{\text{noise}} \) 表示噪声功率。- 音频处理:在音频设备和录音系统中,SNR决定了音质的好坏,高SNR表示音频信号更清晰,噪声更少。- 低SNR:信号中噪声成分较大,接收端难以分辨有用信号和噪声,可能导致误码率高,通信质量差。SNR定义为信号功率与噪声功率之比,通常用分贝(dB)表示。

qq_58860480的博客 8万+

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 452

MySQL Mgr集群安装部署

MySQL组复制(MGR)是一种高可用性解决方案,通过Paxos协议实现数据最终一致性。MGR具有高一致性、容错性、扩展性和灵活性,支持单主/多主模式切换。本文详细介绍了MGR的部署过程,包括环境准备、参数配置、插件安装、账号设置以及单主/多主模式切换。通过模拟主节点宕机测试验证了MGR的自动故障转移能力,并提供了docker-compose快速部署脚本。MGR要求仅支持InnoDB表、必须开启GTID和ROW格式二进制日志,存在部分功能限制。该方案有效解决了传统复制模式的数据一致性问题。

Qnn_blog的博客 1100

手把手教你用BQ Studio给BQ40Z50电量计“做体检”:从Golden Learning到精度验证的全流程实操

本文详细介绍了如何使用BQ Studio对BQ40Z50电量计进行全流程调试,从Golden Learning到精度验证。通过硬件连接、参数配置和优化技巧,帮助工程师提升电池管理系统的精度和性能,适用于BMS开发和电量计校准的实际应用场景。

weixin_30824599的博客 450

Mysql MGR 多主模式集群部署

mysql MGR 集群部署 文章目录mysql MGR 集群部署1 部署 MySQL1.1 安装仓库文件1.2 YUM 安装指定版本的 MySQL2 初始化数据库2.1 启动服务2.2 设置 root 密码3 配置 MySQL3.1 主机名解析3.2 mysql 配置文件3.2.1 启动组配置文件内容如下:3.2.2 配置项介绍3.2.3 集群内其他节点配置文件如下:4 启动组节点设置并开启 MGR4.1 启动组节点用户授权4.2 为启动组节点设置复制通道4.3 启动组节点开启启动组和开启组复制4.4 为

qq_22648091的博客 846

【图像超分】论文精读:Residual Dense Network for Image Super-Resolution(RDN)

一个非常深的卷积神经网络 (CNN) 最近在图像分类 (SR) 方面取得了巨大成功,并提供了分层特征。然而,大多数基于深度 CNN 的 SR 模型没有充分利用原始低分辨率 (LR) 图像中的层次特征,从而实现相对较低的性能。在本文中,我们提出了一种新的残差密集网络(RDN)来解决图像SR中的这个问题。我们充分利用所有卷积层的分层特征。具体来说,我们提出了残差密集块(RDB)通过密集连接的卷积层提取丰富的局部特征。RDB 进一步允许将前一个 RDB 的状态与当前 RDB 的所有层直接连接,从而产生连续的内存

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 7256

【异常】Hermes Agent调用z.ai接口失败(余额不足)API call failed (attempt 1/3): RateLimitError [HTTP 429]

补充说明:同步尝试解析接口对应网页时,出现“网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试”提示,该提示不影响核心报错排查,仅作为辅助信息。

奶爸的编程之路,也就一周冷个三天 1194

mysql8 MGR集群部署

mysql8 MGR集群部署

lx_1314的博客 613

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

部署MySQL5.7 MGR集群

环境配置:主机名IP地址版本系统mysql-001192.168.10.200mysql-5.7.44centos7mysql-001192.168.10.200mysql-5.7.44centos7mysql-001192.168.10.200mysql-5.7.44centos7注:MGR是在MySQL5.7.17以后...

weixin_41126708的博客 175

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql mgr集群说明_k8s集群部署mysql mgr 集群?

记住有一点,以后不管mysql,oracle,hadoop全家桶,这一类的都是有状态服务,通常来说,kubernetes管理无状态到有状态的服务经历过漫长的时间,也迭代了好多的功能组件,部署mysqlmgr其实也是kubernetes管理有状态服务的一种方式。最适合的是参考这篇文章,kubernetes对有状态的服务进行部署和管理,https://kubernetes.io/docs/tasks/...

weixin_42639246的博客 1058

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Docker环境下部署MySQL MGR单主模式集群

文章目录一、MySQL MGR单主模式集群部署1.拉取镜像2.创建MySQL专用网络3.创建MySQL容器挂载在本地的存储数据的目录4.创建3个MySQL容器5.在本地修改MySQL的配置项6.重启MySQL容器7.在所有MySQL容器中安装MGR插件8.在所有节点上创建复制账号9.启动MGR单主模式二、MySQL MGR单主模式集群中添加节点1.创建新节点在本地挂载的存储数据的目录2.创建1个MySQL容器3.修改新增MySQL容器的配置项4.重启新增MySQL容器5.在新增MySQL容器上安装MGR插件

不爱学习的小妞博客 1658

mysql mgr集群多主部署

mysql mgr集群多主部署

ApexPredator的博客 928

mysql mgr 集群部署 单主模式和多主模式

MGR介绍MySQL Group Replication(MGR:mysql组复制技术)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供。 **MGR基于分布式paxos协议,实现组复制,在分布式中保证数据一致性和原子性,且具有容错率的一致性算法。**内置故障检测和自动选主功能,只要不是集群中的大多数节点都宕机,就可以继续正常工作。 提供单主模式与多主模式,多主模式支持多点写入。 MySQL Group Replication(MGR)是MySQL官方在5.7.17

qq_2382495516的博客 2061

基于 MySQL 8.0.40 MGR 与 ProxySQL 的高可用集群部署实践

本文介绍了构建高可用 MySQL 8.0.40 集群的完整方案,采用 MySQL Group Replication (MGR) 和 ProxySQL 实现。主要内容包括: 环境准备:3节点CentOS 7.x服务器配置,网络互通要求 MySQL安装配置:详细说明了my.cnf和mgr.cnf的关键参数设置 MGR集群搭建:包括复制账户创建、集群引导和节点加入步骤 数据同步验证:通过创建测试数据库验证集群同步功能 ProxySQL安装:作为负载均衡层部署,提供MySQL节点管理 该方案实现了应用→Proxy

代码在键上,故事在江湖。 分享云原生、后端架构与运维实践,记录技术成长路上的每一个脚印。 更多原创内容,欢迎关注微信公众号 「键上江湖」,与你一键相逢。 2510

MySQL Group Replication(MGR)集群部署,实现自动故障切换

本文从环境准备、集群搭建、故障测试到生产优化,完整讲解MGR集群部署流程,核心实现**单主模式下的自动故障切换**,新手也能按步骤落地。

tyatyatya的博客 1376

MySQL MGR 单主高可用集群部署

MGR 是 MySQL Group Replication(MySQL 组复制)的简称,是 一种基于分布式一致性协议(Paxos)的高可用集群解决方案。

qq_31788747的博客 267

MySQL【高可用篇】03:MySQL8.0.25InnoDB Cluster【MGR】集群搭建部署

MySQL8.0.25InnoDB Cluster【MGR】集群搭建部署

weixin_40612128的博客 2750
上一篇: k8s部署coredns
下一篇: mysql mgr集群多主部署
Apex   Predator
博客等级 码龄6年 9369粉丝 289原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值