MySQL 5.7 MGR部署

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 实现MySQL数据库主从强同步复制,保证主从库数据的强一致性,MySQL 5.7推出了MGR, 我以实验的方式给大家分享部署MGR。

一、分布在三个节点配置hosts
vim /etc/hosts
172.17.16.2 mgr1
172.17.16.3 mgr2
172.17.16.4 mgr3

二、启动MySQL数据库

nohup /apps/svr/mysql57/bin/mysqld_safe --defaults-file=/apps/conf/mysql/mysql57_3306.cnf --user=apps &

三、3.登录MySQL
mysql -uroot -p

四、在每个节点创建复制账号
grant replication slave on . to 'repl'@'172.17.16.%' identified by 'repl123';

五、安装mgr插件,通过MySQL的插件加载命令加载Group Replication插件。
?install
install plugin group_replication SONAME 'group_replication.so';
show plugins;

六、配置参数(mysql57_3306.cnf)

1.启用Binlog和Relaylog功能
需要设置以下以参数:
server_id=1
log_bin=binlog
log_slave_updates=on (MySQL5.6要打开GTID,一定要打开log_slave_updates=on,MySQL5.7没这个限制)
relay_log=relay-log
read_only=off

2.开启GTID功能
Group Replication要求必须使用GTID功能
gtid_mode=on
enforce_gtid_consistency=on

3.设置Row格式的Binlog
Group Replication只支持Row格式的Binlog
binlog_format=ROW

4.禁用binlog_checksum(必须禁用,mysql8.0也不支持)
Group Replication目前(5.7.17) 还不支持带checksum的Binlog Event.
binlog_checksum=NONE

5.使用系统表来存储Slave的信息
Group Replication要使用到多源复制的功能,多源复制要求必须将Slave通道(Channel)的状态信息存储到系统表中
master_info_repository=TABLE
relay_log_info_repository=TBABLE

6.开并行复制
set global slave_pallel_type='LOGICAL_CLOCK';
set global slave_pallel_workers=2; #线程数据
set global slave_preserve_commit_order=ON;

7.MGR参数
vim mysql57_3306.cnf

Group replication core parameter

binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name='fc4d7cf0-3f75-11eb-9824-000c29540116'
loose-group_replication_local_address='192.0.2.161:13066'
loose-group_replication_group_seeds='192.0.2.161:13066,192.0.2.163:13066,192.0.2.165:13066'
loose-group_replication_start_on_boot=off
loose-group_replication_bootstrap_group= off
loose-group_replication_enforce_update_everywhere_checks=true
loose-group_replication_single_primary_mode=off
loose-group_replication_ip_whitelist = '192.0.2.0/24'

select uuid();

uuidgen

7.启动第一个节点,配置同步通道
reset master; #如果不重置,后面两个节点启动会报错

change master to master_user='repl',master_password='repl123'
for channel 'group_replication_reovery';

8.第一个节点,组初始化
show vriables like '%boot%';
set global group_group_replication_bootstrap_group=on;

9.第一个节点,通过下面的命令启用Group Replication插件。
start group_replication;

use performane_schema;
select * from replication_group_members;

10.第一个节点,关闭初始化
set global group_group_replication_bootstrap_group=off;

11.启第二个节点,配置同步通道
reset master; #如果不重置,启动会报错

change master to master_user='repl',master_password='repl123'
for channel 'group_replication_reovery';

12.第二个节点,启动组复制
set group_replication_allow_local_disjoint_gtids_join=on; #如果版本是5.7.17-5.7.21没有开启动会报错。
start group_replication;
select * from performane_schema.replication_group_members;

13.启第三个节点,配置同步通道
reset master; #如果不重置,启动会报错
change master to master_user='repl',master_password='repl123'
for channel 'group_replication_reovery';

14.第三个节点,启动组复制
set group_replication_allow_local_disjoint_gtids_join=on; #如果版本是5.7.17-5.7.21没有开启动会报错。
start group_replication;
select * from performane_schema.replication_group_members;

15.测试
1)在第一个节点操作
create database yunbee;
use yunbee;
create table t1(id int auto_increment primary key,name varchar(10));
insert into t1(name) values('A'),('B'),('C');
select * from t1;
show variables like '%auto%';

2)在第二个节点操作
insert into t1(name) values('D');
select * from t1;
show variables like '%auto%';

2)在第三个节点操作
insert into t1(name) values('E');
select * from t1;
show variables like '%auto%';

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Kubernetes Cloud Native 关系型数据库
提升数据安全与性能,掌握Helm一键部署MySQL 8.0主从技巧
【4月更文挑战第9天】提升数据安全与性能,掌握Helm一键部署MySQL 8.0主从技巧
51 0
|
2月前
|
网络协议 关系型数据库 MySQL
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
|
4月前
|
关系型数据库 MySQL 数据库
Docker部署Mysql数据库详解
Docker是一种流行的容器化平台,可以简化应用程序的部署和管理。在本博客中,我们将探讨如何使用Docker部署两个广泛使用的数据库:MySQL。我们将提供详细的步骤和相应的命令,以帮助您轻松地在Docker容器中设置和运行这个数据库。
398 0
|
4月前
|
关系型数据库 MySQL
电子好书发您分享《MySQL MGR 8.0高可用实战》
电子好书发您分享《MySQL MGR 8.0高可用实战》 电子好书发您分享《MySQL MGR 8.0高可用实战》
94 1
|
4月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
53 0
|
5月前
|
关系型数据库 MySQL Linux
Docker篇之如何部署MySQL
Docker篇之如何部署MySQL
73 0
|
4月前
|
SQL 关系型数据库 MySQL
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
91 0
|
2月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
106 1
|
1天前
|
关系型数据库 MySQL 数据库
mysqlTools 一分钟部署安装本mysql多个版本,解锁繁琐部署过程
mysqlTools 一分钟部署安装本mysql多个版本,解锁繁琐部署过程
16 2
|
1天前
|
网络协议 关系型数据库 MySQL
如何使用宝塔面板部署MySQL数据库,并结合内网穿透实现固定公网地址远程连接
如何使用宝塔面板部署MySQL数据库,并结合内网穿透实现固定公网地址远程连接
9 0