【MySQL高可用集群 四】MySQL多主多从
【MySQL高可用集群 二】MySQL主从搭建(GTID方式)
【MySQL高可用集群 七】ProxySQL&MySQL 主从环境搭建
【MySQL高可用集群 八】ProxySQL&MGR 环境搭建
一、环境准备:
MySQL多主多从环境就是一个集群中有多个互为主从的节点,同时每个互为主从的写节点又挂载只读的从节点。之前的章节已经介绍过主从搭建、双主搭建的方法,多主多从架构也是在其基础上进行改造。总的来说,MySQL的集群基本上是在主从架构的基础上进行演化改进的。所以下面我主要列出搭建的核心步骤和配置文件,不再一一细讲。
分别在每个节点配置 /etc/hosts 主机域名映射。
#IP 域名|主机名 10.53.207.20 10.53.207.20 #master1 10.53.207.21 10.53.207.21 #master2 10.53.207.22 10.53.207.22 #slave1 10.53.207.23 10.53.207.23 #slave2
关闭防火墙:ufw disable
重启网络执行:
sudo systemctl restart systemd-resolved; bash /etc/hosts;
或者
sudo /etc/init.d/dns-clean start; sudo /etc/init.d/networking restart;
二、master节点配置(10.53.207.20,10.53.207.21)
1、 my.cnf 文件(默认在 /etc/mysql/ 下)配置,我只配置了关键核心属性,其他属性读者可以自定义配置
10.53.207.20
[mysqld]
#集群中服务实例的唯一标识,两个节点不能相同 server-id = 20 # 开启gtid gtid_mode = ON enforce_gtid_consistency = 1 # 设置自增ID初始值为1,每次自增量为2。即都是奇数1,3,5,7,... auto_increment_offset = 1 auto_increment_increment = 2 # 不需要写binlog的库 binlog_ignore_db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performance_schema binlog_ignore_db = sys # 从库不进行同步的库 replicate_ignore_db = mysql replicate_ignore_db = information_schema replicate_ignore_db = performance_schema replicate_ignore_db = sys
10.53.207.21
[mysqld] server-id=21 # 开启gtid gtid_mode = ON enforce_gtid_consistency = 1 # 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8,... auto_increment_offset = 2 auto_increment_increment = 2 # 不需要写binlog的库 binlog_ignore_db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performance_schema binlog_ignore_db = sys # 从库不进行同步的库 replicate_ignore_db = mysql replicate_ignore_db = information_schema replicate_ignore_db = performance_schema replicate_ignore_db = sys
配置完成后分别重启两个服务:service mysql restart
2、然后分别在两个节点中创建数据同步账户:
use mysql; create user 'repl'@'10.53.207.%' identified by 'P@repl'; grant replication slave on *.* to 'repl'@'10.53.207.%'; flush privileges;
3、分别在两个节点配置并开启主从同步:
10.53.207.20
change master to master_host='10.53.207.21', master_port=3306, master_user='repl', master_password='P@repl', master_auto_position=1, get_master_public_key=1;
开启主从同步:start slave
10.53.207.21
change master to master_host='10.53.207.20', master_port=3306, master_user='repl', master_password='P@repl', master_auto_position=1, get_master_public_key=1;
开启主从同步:start slave
4、验证双主架构
可以在任意一个节点同时执行 show master status 和 show replica status 来查看 主从同步信息。
分别在两个服务上进行数据的更新,发现数据都可以同步至另外的主节点。
三、slave节点配置(10.53.207.22,10.53.207.23)
1、my.cnf 文件配置
10.53.207.22
[mysqld] server-id=22
read_only=1 gtid_mode=ON enforce_gtid_consistency=1 replicate_ignore_db = mysql replicate_ignore_db = information_schema replicate_ignore_db = performance_schema replicate_ignore_db = sys
10.53.207.23
[mysqld] server-id=23 read_only=1
gtid_mode=ON enforce_gtid_consistency=1 replicate_ignore_db = mysql replicate_ignore_db = information_schema replicate_ignore_db = performance_schema replicate_ignore_db = sys
配置完成后分别重启两个服务:service mysql restart
2、配置主从同步信息并开启同步服务。
10.53.207.22
change master to master_host='10.53.207.20', master_port=3306, master_user='repl', master_password='P@repl', master_auto_position=1, get_master_public_key=1;
开启主从同步:start slave
10.53.207.23
change master to master_host='10.53.207.21', master_port=3306, master_user='repl', master_password='P@repl', master_auto_position=1, get_master_public_key=1;
开启主从同步:start slave
四、集群验证
可以在每个节点通过 show slave status 或者 show replica status 查看主从同步状态,通过 show master status 查看主节点状态。
可以在主节点(10.53.207.20,10.53.207.21)上进行插入数据,发现数据都能同步至其他节点(包括另一个主节点和其他从节点)。
在从节点无法进行数据更新( super 和 connection_admin 权限的用户不受只读属性限制),只能进行查询,并且可以同步主节点的数据。
原创文章,引用或转载请注明出处:https://www.cnblogs.com/hewei-blogs/articles/17637254.html
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/17637254.html