开始本文的前提:

  1. 【3】台,RHEL 7.6的Linux服务器
  2. 每台服务器,安装好MySQL【5.7.26】;MySQL数据库的安装步骤,在本文中不重复赘述

本文将呈现【3】节点的【MySQL MGR】的技术细节;
涉及架构包括:

  1. 单主模式
  2. 多主模式

环境介绍:

操作系统:RHEL 7.6 64bit
防火墙【firewalld】:已停止;禁用开机启动
SELINUX:已禁用
MySQL版本:5.7.26
内存:2G

节点1:
192.168.40.11

节点2:
192.168.40.12

节点3:
192.168.40.13

文件:/etc/hosts


修改配置文件【/etc/my.cnf】

节点【1】

节点【2】

节点【3】


在所有节点上,初始化数据库:


在所有节点上,启动MySQL数据库服务:

这个过程中的日志【/var/log/mysqld.log】:


在所有节点上,安装MGR的插件:


在所有节点上,设置MGR的复制账号:


启动MGR:单主模式 – 主库

节点【1】:

这个过程的日志:

查看MGR当前的状态:

这样,单主模式下的MGR的主库的配置就完成了。


启动MGR:单主模式 – 成员库

单主模式下,成员库(从库)直接启动MGR,就可以加入MGR:

节点【2 / 3】

MGR启动成功后,去MGR主库上查看当前MGR的状态:

节点【1】:

这个过程中的日志:

节点二加入MGR时候的日志

节点【1】

节点【2】

节点三加入MGR的时候的日志

节点【1】

节点【2】

节点【3】


最后,再看看MGR当前的状态:

可以看到,上面的查询结果中并没有关于MGR成员节点的角色信息;
这一块的信息可以通过以下SQL查询:

执行效果如下:

这样,就可以清晰地看到MGR的成员节点的角色(ROLE)信息了。


至此,MGR的单主模式,配置完成。


测试以下:

在主库上创建一个库,并建表写入一些数据,看看从库是否能够同步到数据。

节点【1】:创建数据库

节点【2 / 3】

可以看到,从库同步到了主库的变化。

这个过程中的日志

节点【1】

节点【2】

节点【3】


将MGR从【单主模式】切换成【多主模式】


在所有节点上, 停MGR:

这个过程中的日志:

节点【1】

节点【2】

节点【3】


在所有节点上,设置参数: