今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL主从同步的M-S-S架构配置实战。
阅读本文,您需要对MySQL主从同步有一定的基础,如果您对此还存在困惑,欢迎查阅我博客内其他文章,相信您一定会有所收获!相关文章链接:
MySQL主从同步(一)——原理详解
MySQL主从同步(二)——M-S架构配置实战
一、实战环境
本次实验,我们使用三台Vmware虚拟机,来实现MySQL主从同步的M-S-S架构配置,各机器IP地址如下:
Master主库:192.168.136.101
Slave中继:192.168.136.201
Slave从库:192.168.136.120
三个MySQL数据库版本都是5.5.68,其余均是默认配置。
二、实验原理
在MySQL主从同步的M-S-S架构中,原理与开头文章推荐处的基本原理是相同的,但是其独有的问题在于Slave中继的作用。在M-S-S架构中,Slave中继的作用是缓解Master主库设备的压力,但是Slave中继设备本身并不存储数据,这一点可以人为将Slave中继的数据表配置成blackhole黑洞引擎模式,在该模式下,所有的数据并不会被数据库所存储。同时,还要注意对该数据表引擎的修改不要记录到二进制日志中。Slave中继在I/O进程从Master主库抓取数据后,虽然不会写入自身的数据库中,但是必须要写到自己的二进制日志中,这样,其他的Slave从库设备即可以从该Slave中继设备的二进制日志中得到数据库的信息了。
三、实验配置
下面,我就进行实际配置。
(一)主库配置
对于主库而言,首先需要配置的是/etc/my.cnf配置文件,需要在配置文件中写入内容如下:
log-bin=master-log
server-id=1
binlog-do-db= rep
binlog-ignore-db=mysql
sync-binlog=1
binlog-format=row
写入后,文件如下所示:
接下来,我们需要启动(重启)Mariadb数据库,重启并登录后,需要对数据库进行授权操作,相关SQL命令如下所示:
grant replication slave on *.* to 'rep_slave'@192.168.136.201 identified by '123456';
这样,主库就已经配置完成了。
(二)Slave中继配置
对于从库而言,需要配置/etc/my.cnf主配置文件如下:
server-id=2
log-bin=slave-relay-log
log-slave-updates=1
binlog-format=row
配置完成后,主配置文件如下所示:
对于Slave中继而言,在完成配置文件配置、启动(重启)并登录数据库后,需要做三件事:配置对Master主库的主从同步、授权Slave从库对自身的主从同步和自身的blackhole引擎设置。
配置对master主库的主从同步SQL语句如下:
change master to
master_host='192.168.136.101',
master_user='rep_slave',
master_password='123456';
授权Slave从库对自身的主从同步SQL语句如下:
grant replication slave on *.* to 'rep_slave'@'192.168.136.%' identified by '123456';
配置自身的blackhole引擎SQL语句如下:
set sql_log_bin=off;
alter table exp ENGINE=blackhole;
set sql_log_bin=on;
由于该过程不能被记录进入二进制日志,因此在进行这一步操作时,必须合理的设置sql_log_bin参数。
相关配置过程如下所示:
(三)Slave从库配置
对于Slave从库,在/etc/my.cnf主配置文件中,只需要写入如下内容:
server-id=3
log-bin=slave-binlog
binlog-format=row
完成后的主配置文件如下所示:
在完成配置后,需要配置Slave从库设备对Slave中继的主从同步,相关SQL命令如下:
change master to
master_host='192.168.136.201',
master_user='rep_slave',
master_password='123456';
这样,当上述所有配置都完成后,我们的MySQL主从同步M-S-S架构就已经配置完成了。
四、效果验证
接下来,我们对我们配置的架构效果进行验证。
(一)slave中继上没有数据
(二)Slave从库上有数据
(三)在slave从库上查看slave状态
(四)在slave中继上查看slave状态
(五)在master主库设备上查看master状态
(六)在slave中继设备上查看master状态
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200