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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总要冲动一次

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值