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

mysql mgr集群部署

一、前言

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

主机信息

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';

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

show variables like '%read_only%';

 

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

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

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

相关文章:

  • 从 git 分支中合并特定文件,而不是整个分支的内容
  • MinIO 和 Apache Tika:文本提取模式
  • 加固平板电脑在无人机的应用|亿道三防onerugged
  • Git 存储大文件
  • keepalived双主模式测试
  • 如何进行 Github 第三方登录详细讲解 (Java 版本)
  • Linux deb软件包制作
  • Xilinx FPGA——在线升级
  • Rust 基本环境安装
  • Leetcode 21-25题
  • 消息队列RabbitMQ-使用过程中面临的问题与解决思路
  • OpenCV-36 多边形逼近与凸包
  • 【网络安全】什么样的人适合学?该怎么学?
  • NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
  • c#的反汇编对抗
  • 推荐彩虹知识付费商城免授权7.0源码
  • 第99讲:MHA高可用集群配置实战:邮件告警和Binlog服务器搭建详解
  • NineAi 新版AI系统网站源码 ChatGPT
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第十二章 常用工具函数 (Utils配置)
  • C语言:生成校验码
  • 坚持科技创新引领,赢得未来发展新优势
  • 外交部亚洲司司长刘劲松向菲方严肃交涉
  • 《中国奇谭》首部动画电影《浪浪山小妖怪》定档8月2日
  • 日韩 “打头阵”与美国贸易谈判,汽车、半导体产业忧虑重重
  • 超级干细胞有助改善生育治疗
  • 视觉周刊|2025上海车展的科技范