mysql 5.7 主主配置文件_mysql5.7.28之主主配置

1 简介

1.1 主从同步

MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库复制到另一个MySQL数据库,在master与Slave之间实现整个主从复制的过程是有三个线程参与完成的。其中两个线程(SQL线程和IO线程)在slave端,另一个线程(I/O线程)在master端。

在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。如果在主服务器或从服务器端发生故障,会造成主从数据的不一致,甚至在恢复时造成数据丢失。

从MySQL5.5开始引入了一种半同步复制功能,该功能可以确保主服务器和访问链中至少一台从服务器之间的数据一致性和冗余。在这种配置结构中,一台主服务器和其许多从服务器都进行了配置,这样在复制拓扑中,至少有一台从服务器在父主服务器进行事务处理前,必须确认更新已经收到并写入了其中继日志(Relay Log)。

1.2 主主同步

主主同步事实上就是在主从的基础上,将原先的从机当主机,主机当从机再配置一遍主从同步。

2 环境

172.17.0.3

node1

Master-1

172.17.0.4

node2

Master-2

3 安装部署

本次部署不涉及mysql数据库安装

3.1 节点配置--修改my.cnf配置

3.1.1 开启日志、打开gtid

3.1.1.1 node1

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

server-id=1

log-bin=mysql-bin

binlog_format = row

gtid_mode=ON   ##GTID复制又叫全局事物ID,代替了基于binlog和position号的主从复制搭建的方式,更便于主从复制的搭建

enforce_gtid_consistency=ON   ##确保gtid全局的一致性

3.1.1.2 node2

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

server-id=2

log-bin=mysql-bin

binlog_format = row

gtid_mode=ON

enforce_gtid_consistency=ON

3.1.2 开启半同步复制

3.1.2.2 node1

1)安装相关插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

33969dca643763e0712df7bdb22aeef2.png

2)修改配置

方法1:(重启mysql后参数失效)

set global rpl_semi_sync_master_enabled=1;

set global rpl_semi_sync_master_timeout=2000;

set global rpl_semi_sync_slave_enabled=1;

方法2:修改my.cnf文件配置(参数永久有效)

rpl_semi_sync_master_enabled = 1

rpl_semi_sync_master_timeout = 2000

rpl_semi_sync_slave_enabled=1

77fed3c1edfca350e37a59d757a8768d.png

3)重启mysql服务,查看修改的参数

show global variables like '%rpl_semi%';

53e9c79a43648ddfed6d80fc4640af64.png

3.1.2.3 node2

1)安装相关插件

install plugin rpl_semi_sync_master soname 'semisync_master.so';

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

c79c5a60af18fe08d2f1f7ef2ccaa6cf.png

2)修改配置

方法1:(重启mysql后参数失效)

set global rpl_semi_sync_master_enabled=1;

set global rpl_semi_sync_master_timeout=2000;

set global rpl_semi_sync_slave_enabled=1;

方法2:修改my.cnf文件配置(参数永久有效)

rpl_semi_sync_master_enabled = 1

rpl_semi_sync_master_timeout = 2000

rpl_semi_sync_slave_enabled=1

b5d0acc4bed3fa8a3dff35334e7ba4cd.png

3)重启mysql服务,查看修改的参数

show global variables like '%rpl_semi%';

ba90242ff41a19a008029174dfb9fbc3.png

3.2 正向主从配置

3.2.1 node1授权

mysql> alter user root@'localhost' identified by 'Aa!123456';

mysql> grant replication slave on *.* to root@'%' identified by 'Aa!123456';

mysql> grant all privileges on *.* to root@'%' identified by 'Aa!123456';

mysql> flush privileges;

3.2.2 node2授权

mysql> alter user root@'localhost' identified by 'Aa!123456';

mysql> grant all privileges on *.* to root@'%' identified by 'Aa!123456';

mysql> change master to master_host='172.17.0.3',master_user='root',master_password='Aa!123456',master_auto_position=1;

mysql> start slave;

mysql> show slave status\G;

b0eab5a015fb9c3041a7ab81a9df1969.png

3.3 反向主从配置

3.3.1 修改my.cnf文件

3.3.1.1Node1

auto_increment_increment=2 ##一般有n台主MySQL就填n

auto_increment_offset=1 ##设定数据库中自动增长的起点,两台mysql的起点必须不同,这样才能避免两台服务器同步时出现主键冲突

3.3.1.2 Node2

auto_increment_increment=2 ##一般有n台主MySQL就填n

auto_increment_offset=2 ##设定数据库中自动增长的起点,两台mysql的起点必须不同,这样才能避免两台服务器同步时出现主键冲突

3.3.2 两个节点授权

3.3.2.1 Node1

grant replication slave, replication client on *.* to 'root'@'172.17.0.4' identified by'Aa!123456';

change master to master_host='172.17.0.4',master_user='root',master_password='Aa!123456',master_auto_position=1;

flush privileges;

start slave;

show slave status\G;

1db2022e788c639aaa3602954e91769a.png

3.3.2.2 Node2

grant replication slave, replication client on *.* to 'root'@'172.17.0.3' identified by'Aa!123456';

flush privileges;

注:node2在正向主从配置时,已经配置过它的主为172.17.0.3,所以无需再配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值