一、配置组复制的步骤
1、初始化数据目录
2、配置主服务器(primary)
3、配置辅助服务器(secondaries)
4、启动mysql实例
5、安装组复制插件(primary and secondaries)
6、创建复制用户(replication user)的用户
7、在主服务器上启动组复制
8、将辅助(secondaries)服务器连接到主(primary)服务器
9、确认组复制的状态 二、配置过程
1、初始化数据目录
[mysql@node01 ~]$ mysqld --no-defaults --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306/data [mysql@node02 ~]$ mysqld --no-defaults --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306/data [mysql@node03 ~]$ mysqld --no-defaults --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306/data 2、配置primary
配置primary节点,我们需要准备好数据目录、端口,GTID以及组复制相关参数选项,还要添加plugin目录确保服务器可以找到组复制相关的插件,并且要打开binlog的日志校验。 因为group_replication_group_seeds参数需要配置组复制初始参与的服务器列表,所以必须提前决定每个服务器将要使用的端口。组复制设置中每个服务器需要配置两个端
口,一个用于客户端连接,一个用于内部组复制的消息通信。 node01:
[mysqld]
datadir=/data/mysql3306/data
basedir=/usr/local/mysql
plugin_dir=/usr/local/mysql/lib/plugin
port=24801
socket=/tmp/mysql.sock
server_id=1
gtid_mode= ON
enforce_gtid_consistency= ON
binlog_checksum=NONE
transaction_write_set_extraction = XXHASH64
loose-group_replication_recovery_use_ssl= ON
loose-group_replication_group_name = '5dbabbe6-8050-49a0-9131-1de449167446'
loose-group_replication_start_on_boot = OFF
loose-group_replication_local_address = '192.168.211.128:24901'
loose-group_replication_group_seeds = '192.168.211.128:24901,192.168.211.129:24902,192.168.211.130:24903'
loose-group_replication_bootstrap_group = OFF [mysql]
port=24801
socket=/tmp/mysql.sock 这里参数文件没有配置log-bin参数,因为当服务器遇到组复制参数时,它将自动启用binlog,binlog在组复制里面时是必须的。如果你需要命名binlog文件或者将binlog定向
存储到某个目录中,那么需要配置log-bin参数。 3、配置secondaries
secondaries节点的配置与primary节点类似,区别在于对于特定参数(端口信息,数据目录,套接字,服务器ID)等需要设置成特定的值。除此之外,transaction_write_set_extraction参数
只在primary节点上设置,对于secondaries节点,我们添加group_replication_recovery_get_public_key参数并将其设置为ON。这个参数决定,primary节点到secondaries节点的请求是
否为基于RSA密钥对的密码交换所需的公钥。 node02:
[mysqld]
datadir=/data/mysql3306/data
log-bin=/data/mysql3306/binlog
log_slave_updates = ON
basedir=/usr/local/mysql
plugin_dir=/usr/local/mysql/lib/plugin
port=24802
socket=/tmp/mysql.sock
server_id=2
gtid_mode= ON
enforce_gtid_consistency= ON
binlog_checksum=NONE
loose-group_replication_recovery_get_public_key= ON
loose-group_replication_recovery_use_ssl= ON
loose-group_replication_group_name = '5dbabbe6-8050-49a0-9131-1de449167446'
loose-group_replication_start_on_boot = OFF
loose-group_replication_local_address = '192.168.211.129:24902'
loose-group_replication_group_seeds = '192.168.211.128:24901,192.168.211.129:24902,192.168.211.130:24903'
loose-group_replication_bootstrap_group = OFF [mysql]
port=24802
socket=/tmp/mysql.sock node03:
[mysqld]
datadir=/data/mysql3306/data
log-bin=/data/mysql3306/binlog
log_slave_updates = ON
basedir=/usr/local/mysql
plugin_dir=/usr/local/mysql/lib/plugin
port=24803
socket=/tmp/mysql.sock
server_id=3
gtid_mode= ON
enforce_gtid_consistency= ON
binlog_checksum=NONE
loose-group_replication_recovery_get_public_key= ON
loose-group_replication_recovery_use_ssl= ON
loose-group_replication_group_name = '5dbabbe6-8050-49a0-9131-1de449167446'
loose-group_replication_start_on_boot = OFF
loose-group_replication_local_address = '192.168.211.130:24903'
loose-group_replication_group_seeds = '192.168.211.128:24901,192.168.211.129:24902,192.168.211.130:24903'
loose-group_replication_bootstrap_group = OFF [mysql]
port=24803
socket=/tmp/mysql.sock 4、启动实例
[mysql@node01 ~]$ mysqld --defaults-file=/etc/primary.cnf &
[mysql@node02 ~]$ mysqld --defaults-file=/etc/slave1.cnf &
[mysql@node03 ~]$ mysqld --defaults-file=/etc/slave2.cnf & 启动实例并且输出日志:
$ mysqld --defaults-file=/etc/primary.cnf > primary_output.log 2>&1 &
$ mysqld --defaults-file=/etc/slave1.cnf > slave1_output.log 2>&1 &
$ mysqld --defaults-file=/etc/slave2.cnf > slave2_output.log 2>&1 & 5、安装组复制插件(所有节点)
mysql实例启动后,必须安装组复制插件。
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so'; 查看插件状态show plugins,或者从information_schema.plugins系统表中查询插件信息。
select * from information_schema.plugins where plugin_name = 'group_replication'\G; 6、创建复制组用户(所有节点)
在启动mysql实例之后,必须创建一个用户,供服务器用于彼此连接。在组复制中,服务器都是互相“交流”的。这些命令与我们在mysql复制中使用的命令相同,我们需要在所有服务器
实例上创建这个用户。
set sql_log_bin=0;
create user rpl@'%' identified by 'mysql';
grant replication slave on *.* to rpl@'%';
flush privileges;
set sql_log_bin=1; 7、在primary上启动复制(primary上执行)
group_replication_bootstrap_group参数通常在第一次启动的时候设置成OFF,因为复制组还没有启动,我们在primary上启动复制组。参数group_replication_boostrap_group是可以动态设置的,我们可以动态的打开和关闭这个参数。
set global group_replication_bootstrap_group=ON;
start group_replication;
set global group_replication_bootstrap_group=OFF; 8、连接secondaries到primary节点(secondaries上执行)
mysql> change master to master_user="rpl",master_password='mysql' for channel 'group_replication_recovery'; Query OK, 0 rows affected, 2 warnings (0.01 sec) 现在我们已经将辅助设备配置为连接到主服务器,但是连接还没建立,我们必须通过启动组复制来完成此过程。 9、在secondaries上启动组复制
mysql> start group_replication;
2020-09-29T00:17:15.035829Z 10 [System] [MY-010597] [Repl] 'CHANGE MASTER TO FOR CHANNEL 'group_repl ication_applier' executed'. Previous state master
_host='', master_port= 3306, master_log_file='', ma ster_log_pos= 4, master_bind=''. New state master_host='<NULL>', master_port= 0, master_log_file=
'', master_log_pos= 4, master_bind=''.
Query OK, 0 rows affected (4.30 sec) mysql> 2020-09-29T00:17:19.332065Z 17 [System] [MY-010597] [Repl] 'CHANGE MASTER TO FOR CHANNEL 'gro up_replication_recovery' executed'. Previous state
master_host='', master_port= 3306, master_log_fil e='', master_log_pos= 4, master_bind=''. New state master_host='node01', master_port= 24801, master_
log_file='', master_log_pos= 4, master_bind=''.
2020-09-29T00:17:19.375174Z 18 [Warning] [MY-010897] [Repl] Storing MySQL user name or password info rmation in the master info repository is not secure
and is therefore not recommended. Please conside r using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the
MySQL Manual for more information.
2020-09-29T00:17:19.395921Z 18 [System] [MY-010562] [Repl] Slave I/O thread for channel 'group_repli cation_recovery': connected to master 'rpl@node01:24
801',replication started in log 'FIRST' at posit ion 4
2020-09-29T00:17:19.511547Z 17 [System] [MY-010597] [Repl] 'CHANGE MASTER TO FOR CHANNEL 'group_repl ication_recovery' executed'. Previous state master_ho
st='node01', master_port= 24801, master_log_fil e='', master_log_pos= 4, master_bind=''. New state master_host='<NULL>', master_port= 0, master_log_ file=
'', master_log_pos= 4, master_bind=''. start group_replication命令通常不会报告任何错误,并且可能需要更长的时间才能返回,这是因为当secondaries连接到主节点并开始与主节点协调时,很多工作都是在后台进行的。 10、确认集群状态
select * from performance_schema.replication_group_members\G; mysql> select * from performance_schema.replication_group_members\G;
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 577274f9-00e7-11eb-89e9-00505625f5f5
MEMBER_HOST: node01
MEMBER_PORT: 24801
MEMBER_STATE: ONLINE
MEMBER_ROLE: PRIMARY
MEMBER_VERSION: 8.0.18
*************************** 2. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 75ad0e91-00e7-11eb-a505-005056320441
MEMBER_HOST: node02
MEMBER_PORT: 24802
MEMBER_STATE: ONLINE
MEMBER_ROLE: SECONDARY
MEMBER_VERSION: 8.0.18
*************************** 3. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 7bf9c4cb-00e7-11eb-8cc3-00505625d41f
MEMBER_HOST: node03
MEMBER_PORT: 24803
MEMBER_STATE: ONLINE
MEMBER_ROLE: SECONDARY
MEMBER_VERSION: 8.0.18
3 rows in set (0.01 sec) ERROR:
No query specified 10、关闭MGR集群(secondaries先,primary后)
node02:
mysql> stop group_replication;
Query OK, 0 rows affected (4.68 sec) node03:
mysql> stop group_replication;
Query OK, 0 rows affected (4.68 sec) node01:
mysql> stop group_replication;
Query OK, 0 rows affected (5.17 sec) 开启MGR集群(primary先,secondaries后)
node01:
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
Query OK, 0 rows affected (0.00 sec) node02:
mysql> start group_replication; node03:
mysql> start group_replication; node01:
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
Query OK, 0 rows affected (0.00 sec) node01查看集群状态:
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 577274f9-00e7-11eb-89e9-00505625f5f5 | node01 | 24801 | ONLINE | PRIMARY | 8.0.18 |
| group_replication_applier | 75ad0e91-00e7-11eb-a505-005056320441 | node02 | 24802 | ONLINE | SECONDARY | 8.0.18 |
| group_replication_applier | 7bf9c4cb-00e7-11eb-8cc3-00505625d41f | node03 | 24803 | ONLINE | SECONDARY | 8.0.18 |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)
  

  

mysql 8.0 MGR组复制配置的更多相关文章

  1. MySQL8.0.11 组复制配置

     my.cnf [mysql] prompt='node2 [\h] {\u} (\d) > ' # [client] user = sa password = cc.123 port = 22 ...

  2. Mysql 5.7 基于组复制(MySQL Group Replication) - 运维小结

    之前介绍了Mysq主从同步的异步复制(默认模式).半同步复制.基于GTID复制.基于组提交和并行复制 (解决同步延迟),下面简单说下Mysql基于组复制(MySQL Group Replication ...

  3. MySQL Group Replication(组复制MGR)

    MGR基本要求: 1.InnoDB存储引擎 2.主键,每个表必须具有已定义的主键或等效的主键,其中等效项是非null唯一键 3.IPv4网络 4.网络性能 5.开启二进制日志并开启GTID模式 6.m ...

  4. MySQL基于GTID的组复制(MGR)

    环境准备 IP 主机名 操作系统 192.168.131.129 mgr-node1 CentOS7.6 192.168.131.130 mgr-node2 CentOS7.6 192.168.131 ...

  5. MySQL数据库的主从同步复制配置

    一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...

  6. 原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误(修改内容有三处

    原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误改有三: a) mysql 连接jar包版修改 b)类路径修改 c)配置连接池地址修改 因版本升级,首先要修改 1:mysql- ...

  7. Mysql Group Replication 简介及单主模式组复制配置【转】

    一 Mysql Group Replication简介    Mysql Group Replication(MGR)是一个全新的高可用和高扩张的MySQL集群服务.    高一致性,基于原生复制及p ...

  8. MySQL高可用之组复制(1):组复制技术简介

    MySQL组复制系列文章: MySQL组复制大纲 MySQL组复制(1):组复制技术简介 MySQL组复制(2):配置单主模型的组复制 MySQL组复制(3):配置多主模型的组复制 MySQL组复制( ...

  9. MySQL高可用之组复制(4):详细分析组复制理论

    MySQL组复制系列文章: MySQL组复制大纲 MySQL组复制(1):组复制技术简介 MySQL组复制(2):配置单主模型的组复制 MySQL组复制(3):配置多主模型的组复制 MySQL组复制( ...

随机推荐

  1. python分类

    python是一种动态解释性的强类型语言. python下分几个类别,分别是cpython,jypython,ironpython,pypy等等,这些属于不同的解释器,但编写规范只有一个就是pytho ...

  2. 创建Spring Cloud聚合项目

    使用maven创建单一项目的时候通常用不到聚合项目,创建spring cloud项目时候,由于下面都是一个一个微服务,每个服务对应一个项目,这就需要用到聚合项目,方便对依赖和项目之间的关系进行管理,使 ...

  3. 思维导图VS金字塔原理

    作为常识,思维导图制作的核心元素是关键词,而金字塔原理制作的核心元素则是拓展的概要句子,这两种方式是当今人们常用的思维工具,本文对其做了对比,希望对你的选择有所帮助. 金字塔原理结构:从上到下三角形结 ...

  4. 使用Mac清理工具CleanMyMac对Mac电脑进行维护

    CleanMyMac是Mac系统下的一款苹果电脑清理软件,同时也是一款优秀的电脑维护软件,它能通过用户手动运行CleanMyMac内置脚本文件,释放电脑内存,帮助电脑缓解卡顿现象,保证电脑的良好持续运 ...

  5. 攻克solo第七课(Randy Rhoads风格)

    本期文章,笔者将通过Guitar Pro 7吉他软件跟大家分享一下Randy Rhoads的solo句子. 相信很多精研电吉他的朋友都会听过这个一手把Ozzy Osbourne从离开黑色安息日乐队的深 ...

  6. 磁盘冗余阵列之RAID5、RAID10

    RAID技术主要有以下三个基本功能: (1).通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度. (2).通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机 ...

  7. Cloud-Native! 实战 Helm 3 部署 Traefik 2

    介绍 Traefik 是什么? Traefik, The Cloud Native Edge Router Traefik 是一种现代 HTTP 反向代理和负载均衡器,用于轻松部署微服务. 这篇文章对 ...

  8. Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  9. python基本输入输出函数

    python程序设计中有三个重要的基本输入.输出函数,用于输入.转换和输出,分别是input(),eval(),print() 1,input()函数 """ input ...

  10. JZOJ2020年8月12日提高组反思

    JZOJ2020年8月12日提高组反思 真·难亿一点点 T1 题目长并附带伤害-- 暴力搜 对于字符串,我选择\(Pascal\) T2 概率问题,再见 T3 样例没懂,再见 T4 有史以来见过的条件 ...