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

MySQL MGR 集群新增节点

前言

服务器规划现状(CentOS7.x)

IP地址主机名部署角色
192.168.x.101mysql01mysql
192.168.x.102mysql02mysql
192.168.x.103mysql03mysql
192.168.x.104proxysql01proxysql、keepalived
192.168.x.105proxysql02proxysql、keepalived

新增服务器IP:192.168.x.106 主机名:mysql04 部署角色:mysql

新增后服务器规划(CentOS7.x)

IP地址主机名部署角色
192.168.x.101mysql01mysql
192.168.x.102mysql02mysql
192.168.x.103mysql03mysql
192.168.x.106mysql04mysql
192.168.x.104proxysql01proxysql、keepalived
192.168.x.105proxysql02proxysql、keepalived

将安装包 mysql_cluster_ha_pack.zip 上传至新增服务器,并解压(需要包请私我)。

上传位置 /root/

一、基础配置

1.1 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

1.2 关闭selinux

# 获取selinux状态
getenforce
# 临时关闭
setenforce 0 
# 永久关闭需要重启
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux 

1.3 修改主机名

# 临时修改
hostnamectl --transient set-hostname xxxx
# 永久修改需要重启   --static可以省略
hostnamectl --static set-hostname xxxx 

1.4 修改hosts

vim /etc/hosts

192.168.x.101 mysql01
192.168.x.102 mysql02
192.168.x.103 mysql03
192.168.x.106 mysql04
192.168.x.104 proxysql01
192.168.x.105 proxysql02

一、新增读节点

1.1 安装MySQL

cd /root/mysql_cluster_ha_pack/mysql
mv mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar /root
# 执行 mysql_auto_install.sh 前请确认 /opt/module/mysql 目录不存在
sh mysql_auto_install.sh
# 提示输入 root 用户密码
(Default password: root):xxxxxx

1.2 配置MySQL

新节点确保server id和其他节点不一致

vim /etc/my.cnf
# 追加下面内容
server-id=4
gtid_mode=ON
enforce_gtid_consistency=ON
log-bin=binlog
binlog_checksum=NONE
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_recovery_use_ssl=ON
loose-group_replication_group_name="bbbbbbbb-bbbb-cccc-dddd-eeeeeeeeeeee"
loose-group_replication_start_on_boot=OFF
loose-group_replication_local_address="mysql04:24901"
loose-group_replication_group_seeds="mysql01:24901,mysql02:24901,mysql03:24901,mysql04:24901"
loose-group_replication_bootstrap_group=OFF
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=ON
max_connections=2000

其中 group_replication_group_seeds 需要在所有节点增加新加入节点的IP。

# 其他节点执行
sed -i 's#group_replication_group_seeds=\"mysql01:24901,mysql02:24901,mysql03:24901\"#group_replication_group_seeds=\"mysql01:24901,mysql02:24901,mysql03:24901,mysql04:24901\"#' /etc/my.cnf
# 进入mysql命令行执行
set global group_replication_group_seeds="mysql01:24901,mysql02:24901,mysql03:24901,mysql04:24901"

1.3 初始化MySQl

  • 创建用户

    -- 主从复制用户
    CREATE USER rpl_user@'%' IDENTIFIED BY 'rpl202302';
    GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
    -- Proxysql监控用户
    CREATE USER 'monitor'@'%' IDENTIFIED BY "monitor@2023";
    CREATE USER 'proxysql'@'%' IDENTIFIED BY "proxysql@2023";
    GRANT ALL PRIVILEGES ON *.* TO 'monitor'@'%';
    GRANT ALL PRIVILEGES ON *.* TO 'proxysql'@'%';
    FLUSH PRIVILEGES;
    
  • 创建视图

    USE sys;
    SOURCE /root/mysql_cluster_ha_pack/proxysql/addition_to_sys.sql
    
  • 安装插件

    INSTALL PLUGIN group_replication SONAME 'group_replication.so';
    

1.4 加入 MGR 集群

  • 导出数据

    # 在 mysql03 上执行 mysqldump 导出用户数据
    mysqldump -uroot -p123456 --single-transaction --master-data=2 -B dbname > /root/dbname.sql# 将数据复制到新节点mysql04上
    scp /root/dbname.sql @mysql04:/root
    
  • 导入数据

    -- 在 mysql04 上执行导入
    RESET MASTER;
    source /root/dbname.sql
    
  • 加入集群(mysql 命令行)

    -- 加入 MGR 集群
    CHANGE MASTER TO MASTER_USER="rpl_user", MASTER_PASSWORD="rpl202302" FOR CHANNEL 'group_replication_recovery';-- 启动组
    START GROUP_REPLICATION; 
    

1.5 查询节点

最后检查是否加入成功

-- 所有节点执行
SELECT * FROM performance_schema.replication_group_members;-- 查询是否为只读节点
SELECT * FROM sys.gr_member_routing_candidate_status;
http://www.lryc.cn/news/16461.html

相关文章:

  • 【单目标优化算法】蜣螂优化算法(Dung beetle optimizer,DBO)(Matlab代码实现)
  • 【C++】类和对象入门必知
  • day38 动态规划 | 509、斐波那契数 70、爬楼梯 746、使用最小花费爬楼梯
  • 2023年备考软考必须知道的6件事
  • GLOG如何控制输出的小数点位数
  • 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A(6)
  • Safety-Gym环境配置与安
  • 3月再不跳槽,就晚了
  • HTTP cookie格式与约束
  • docker基础
  • 【微信小程序】--JSON 配置文件作用(三)
  • EDA-课设
  • C/C++每日一练(20230222)
  • Java API 文档搜索引擎
  • 2023美赛C题Wordle二三问分布预测和难度分类预测
  • gdb的简单练习
  • 如何使用python AI快速比对两张人脸图像?
  • (2)C#传智:变量基础(第二天)
  • 02-mysql高级-
  • windows 使用everything 查看文件(夹)存储空间占用
  • 2023该好好赚钱了,推荐三个下班就能做的副业
  • vue3如何进行数据监听watch/watchEffect
  • Wgcloud安装和使用(性能监控)
  • 前端如何实现本地图片上传?
  • 【基础算法】差分的应用(一维差分和二维差分)
  • 第49章 API统一集中管理
  • carla0.9.13-UE4添加4轮车模型(Linux系统)
  • 对比yolov4和yolov3
  • Android ServiceManager
  • 数据挖掘,计算机网络、操作系统刷题笔记53