zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL主从同步(二)——M-S架构配置实战

mysql同步配置架构 实战 主从
2023-09-14 09:01:46 时间

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL主从同步中M-S架构配置实战。

一、实战环境

本次实战,我们采用两台Vmware虚拟机,来配置实现MySQL数据库的主从同步M-S架构。环境如下:
MySQL Master:192.168.136.101
MySQL Slave:192.168.135.201
两个MySQL数据库都是5.5.68
其余都是MySQL数据库的默认配置

二、主库配置

(一)数据库配置文件配置

为了实现MySQL主从同步功能,我们需要在配置文件上进行以下改动,打开/etc/my.cnf,该文件是MySQL数据库的主配置文件,需要在该文件的[mysqld]模块中添加一下内容:

log-bin=master-log
server-id=1
binlog-do-db=rep
binlog-ignore-db=mysql

其中log-bin为MySQL主库的二进制日志,后面为二进制日志的日志名;server-id为MySQL主从同步的一个标识符,该标识符可以任意选择,但是MySQL主从架构中任意一个设备的server-id都必须唯一;binlog-do-db为做主从同步的数据库,binlog-ignore-db为禁止进行主从同步的数据库。
修改后的配置文件如下所示:
在这里插入图片描述

(二)数据库授权配置

在完成MySQL数据库配置文件相关配置后,我们需要创建我们想要进行同步的数据库,以及数据表,该过程就不再赘述了。
之后,我们还需要登入数据库中进行授权,授权命令如下所示:

grant replication slave on *.* to slave_rep@192.168.136.201 identified by '123456';

在上述命令中,replication slave表示一个主从同步的权限,on后面表示权限针对的库和表,点前面的表示库,后面的标识表,在上述命令中,*表示所有库和所有表,to后面表示权限的授予对象,@符号前面表示权限被授予的用户,后面表示该用户允许登录的IP地址,identified表示该用户在登录时需要提供的验证的密码。

三、从库配置

相应的,从库上也需要进行响应的配置。对于从库而言,也需要更改数据库配置文件,打开/etc/my.cnf文件,在文件中与主库同样的位置,写入如下内容:

server-id=2

在这里,server-id不一定必须是2,但是必须与主库的server-id不同,上述内容修改完成后,就可以启动数据库了。
登录数据库之后,在数据库中添加如下内容:

change master to master_host='192.168.136.101',master_user='slave_rep',master_password='123456';
start slave;

执行情况如下:
在这里插入图片描述
在上述命令中,master_host、master_user和master_password分别表示向主库进行同步时的主库IP、用户名和密码,如果主库的开放端口不是3306,则还需要指定master_port。
注意,如果采用的是MySQL5.5版本,那么禁止在从库上创建同步的数据库和数据表! 或许其他的教程中,有需要创建数据库和数据表,或者是采用数据库导入导出的方式进行,但是,在MySQL5.5版本中,在同步时会自动创建库和表,反倒是如果从库中有了该数据库,会出现一些问题,导致主从同步不成功的结果。因此,重要的事情说三遍:
禁止在从库上创建同步的数据库和数据表!
禁止在从库上创建同步的数据库和数据表!
禁止在从库上创建同步的数据库和数据表!

四、现象查看

在完成上述配置后,我们就可以查看数据库主从同步的现象了,首先在从库上执行命令:

show slave status\G

结果如下所示:
在这里插入图片描述
如果发现在I/O和SQL Runing上都有yes,则说明主从同步已经配置成功,此时,我们可以发现,从库上已经自动创建了要同步的数据库和内部的数据表。这样,我们尝试在主库中插入数据,发现从库中也会出现同样的内容,这就说明我们主从同步配置成功了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200