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

MySQ-8.42 MGR 组复制部署及详解

目录

1 MGR要求

2 操作系统信息和软件版本

3 集群架构图

4 MySQL MGR 主库部署步骤


1 MGR要求


InnoDB 存储引擎
表上必须存在主键或唯一非空索引
MGR可允许的最大节点9个


2 操作系统信息和软件版本


root@u24-mysql-mgr-42:~# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l

mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz


3 集群架构图


192.168.254.40 u24-mysql-mgr-40   #主库
192.168.254.41 u24-mysql-mgr-40   #从库
192.168.254.42 u24-mysql-mgr-40      #从库


4 MySQL MGR 主库部署步骤


4.1 安装MySQL-8.0.42,采用二进制包方式安装
apt-get install libaio1 -y
tar -xf mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
cd /usr/local/
mv mysql-8.0.42-linux-glibc2.28-x86_64/ mysql-8.0.42

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

#my.cnf  配置文件
root@u24-mysql-mgr-40:~# cat /etc/my.cnf 
[client]
socket = /mysql/data/mysql.sock

[mysqld]
basedir = /usr/local/mysql-8.0.42
datadir = /mysql/data
user = mysql
port = 3306
socket = /mysql/data/mysql.sock
log_error = /mysql/data/mysqld.err
log_timestamps = system

log-bin = mysql-bin
server-id = 1

#systemd 配置文件
root@u24-mysql-mgr-40:~# cat /lib/systemd/system/mysql.service 
[Unit]
Description=MySQL server
Documentation=man:mysql(8) 
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/mysql/data/mysqld.pid
TimeoutSec=0
ExecStart=/usr/local/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/mysql/data/mysqld.pid --daemonize $MYSQLD_OTPS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=False

[Install]
WantedBy=multi-user.target
Alias=mysqld.service

#将MySQL已经初始化数据文件拷贝到/mysql/data 目录下
rsync -r /mysql 192.168.254.40:/
rsync -r /mysql 192.168.254.41:/
rsync -r /mysql 192.168.254.42:/

授权
chown -R mysql:mysql /mysql/

#修改uuid,保证每台服务器唯一值
root@u24-mysql-mgr-40:/mysql/data# vi auto.cnf 
[auto]
server-uuid=4ab24c26-3a42-11f0-95cf-000c29228481

#启动MySQL服务
systemctl start mysql
systemctl enable mysql


4.2 安装MGR 主库步骤
#修改my.cnf
root@u24-mysql-mgr-40:~# vi /etc/my.cnf 
[client]
socket = /mysql/data/mysql.sock

[mysqld]
basedir = /usr/local/mysql-8.0.42
datadir = /mysql/data
user = mysql
port = 3306
socket = /mysql/data/mysql.sock
log_error = /mysql/data/mysqld.err
log_timestamps = system

#MGR
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
gtid_mode=ON
enforce_gtid_consistency=ON
log-bin = mysql-bin
server-id = 1

plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "192.168.254.40:33061"
group_replication_group_seeds= "192.168.254.40:33061,192.168.254.41:33061,192.168.254.42:33061"
group_replication_bootstrap_group=off

#创建用户和授权
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
mysql> GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
mysql> GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
mysql> FLUSH PRIVILEGES;


mysql> CHANGE REPLICATION SOURCE TO SOURCE_USER='rpl_user', SOURCE_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;


#检查该组是否已创建
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST      | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 4ab24c26-3a42-11f0-95cf-000c29228481 | u24-mysql-mgr-40 |        3306 | ONLINE       | PRIMARY     | 8.0.42         | XCom                       |
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+----------------------------+
1 row in set (0.01 sec)


4.3 安装MGR 从库库步骤:
#修改my.cnf
root@u24-mysql-mgr-41:~# cat /etc/my.cnf 
[client]
socket = /mysql/data/mysql.sock

[mysqld]
basedir = /usr/local/mysql-8.0.42
datadir = /mysql/data
user = mysql
port = 3306
socket = /mysql/data/mysql.sock
log_error = /mysql/data/mysqld.err
log_timestamps = system

#MGR
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
gtid_mode=ON
enforce_gtid_consistency=ON

log-bin = mysql-bin
server-id = 2

plugin_load_add='group_replication.so'
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "192.168.254.41:33061"
group_replication_group_seeds= "192.168.254.40:33061,192.168.254.41:33061,192.168.254.42:33061"
group_replication_bootstrap_group=off


#重启
root@u24-mysql-mgr-41:~# systemctl daemon-reload
root@u24-mysql-mgr-41:~# systemctl restart mysql

#创建用户和授权
mysql -uroot -p
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;


CHANGE REPLICATION SOURCE TO SOURCE_USER='rpl_user', SOURCE_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

START GROUP_REPLICATION;

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 4ab24c26-3a42-11f0-95cf-000c29228481 | u24-mysql-mgr-40 |        3306 | ONLINE       | PRIMARY     | 8.0.42          | XCom                       |
| group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 |  u24-mysql-mgr-41|        3306 | ONLINE       | SECONDARY   | 8.0.42          | XCom                       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+----------------------------+
 

http://www.xdnf.cn/news/10414.html

相关文章:

  • 医疗数理范式化:从范式迁移到认知革命的深度解析
  • 微服务面试(分布式事务、注册中心、远程调用、服务保护)
  • 基于GeoTools和OSM路网求解两条道路相交点-以长沙市为例
  • CSS篇-6
  • Java中的线程池七大核心参数设置策略和使用场景参数设计举例
  • 6.01打卡
  • iOS安全和逆向系列教程 第18篇:iOS应用脱壳技术详解与实战
  • python集成inotify-rsync实现跨服务器文件同步
  • GO+RabbitMQ+Gin+Gorm+docker 部署 demo
  • Qwen2.5-VL 视觉编码器的 RMSNorm
  • MQTT入门实战宝典:从零起步掌握物联网核心通信协议
  • Android Stdio 编译 文件生成,以及Gradle
  • 科研学习|科研软件——激活后的Origin导出图时突然出现了demo水印
  • TDenigne 集群可视化管理
  • UVa1457/LA4746 Decrypt Messages
  • 卫生间改造翻新怎么选品牌?智能健康、适老有爱,我选瑞尔特
  • windows+APP PDFgear 免费工具
  • 属性映射框架-MapStruct
  • 产品规格书写作结构、规范(编写指南)
  • 【MLLM】多模态LLM 2025上半年技术发展(Better、Faster、Stronger)
  • 使用MCP和Ollama本地创建AI代理:实操教程
  • 定制一款国密浏览器(13):预置国密根证书到浏览器
  • |从零开始的Pyside2界面编程|绘图、布局及页面切换
  • 【算法】递归与分治策略
  • C++11 语法特性一文详解
  • MySQL中count(1)和count(*)的区别及细节
  • Redis持久化机制详解
  • atapi!IdeReadWrite函数分析下之Send read command
  • uv:现代化的 Python 包和项目管理工具
  • 论爱情《态度》