1

文档编写目的

 

在生产环境中,数据库的主从配置是很有必要的,主从配置能提供数据源的备份,提供安全性方面的保障,从数据库也能减轻主数据库的访问压力,在出现故障时,也能减少损失。文档中会介绍MySQL5.7.22的主从配置步骤。

 

2

配置信息

 

操作系统:Red Hat 7.2

数据库版本:MySQL5.7.22

主节点:192.168.0.236

从节点:192.168.0.237

数据库用户名密码统一为root/!qQ123456

在配置过程中使用root用户进行操作

 

3

配置过程

3.1

Master/Slave配置

 

  • Master配置

修改主节点配置文件加入如下配置并重启服务:

vim /etc/my.cnf

log-bin=mysql-bin
server-id=236
binlog_format=MIXED

 

MySQL5.7.22主从配置_mysql

 

参数含义:

log-bin:开启二进制日志,日志文件前缀

server-id:数据库服务的唯一标识,不能重复

binlog_format=MIXED:记录二进制日志的格式,推荐使用MIXED

 

Slave配置

修改从节点配置文件加入如下配置并重启服务:

 

vim /etc/my.cnf

log-bin=mysql-bin
server-id=237

 

MySQL5.7.22主从配置_mysql_02

 

server-id和上面不能相同,是唯一的。

 

3.2

主从复制

 

  • 在主节点数据库中创建一个用户fftest

用户名:fftest密码:fftest

用户必须要有REPLICATION SLAVE权限,这样slave才能通过该用户进行复制。

 

GRANT REPLICATION SLAVE ON *.* TO 'fftest'@'192.168.0.%' IDENTIFIED BY 'fftest';
FLUSH PRIVILEGES;

 

MySQL5.7.22主从配置_mysql_03

 

  • 查看主节点MySQL二进制日志File与Position

show master status;

 

MySQL5.7.22主从配置_mysql_04

 

  • 在从节点数据库中执行如下命令进行同步,host为Master节点地址,file和pos为上一步中查看的Master的信息,执行完成后通过start slave启动同步。

change master to
master_host='192.168.0.236',
master_user='fftest',
master_password='fftest',
master_log_file='mysql-bin.000003',
master_log_pos=601;

start slave;

 

MySQL5.7.22主从配置_mysql_05

 

  • 查看从节点状态

MySQL5.7.22主从配置_mysql_06

 

上图标记部分为yes,表示主从复制构建成功

 

4

测试结果

 

  • 在主节点创建数据库testff,并新建表test1

MySQL5.7.22主从配置_mysql_07

MySQL5.7.22主从配置_mysql_08

 

  • 向表中插入数据

MySQL5.7.22主从配置_mysql_09

 

  • 在从节点中成功查看到数据,主从构建测试成功

MySQL5.7.22主从配置_mysql_10

 

5

主从配置的补充

 

如果在主从配置之前,主数据库已经有了数据,可按照下列步骤进行配置。

 

1.查看主库已有数据

MySQL5.7.22主从配置_mysql_11

 

2.锁定主数据库

锁定后,只允许读取不允许写入,这样做的目的是防止备份过程中或备份完成后有新数据插入,导致备份数据与主数据不一致。

MySQL5.7.22主从配置_mysql_12

 

  • 备份数据

由于是做测试,所以只备份了fff,在生产/开发/测试环境中,请根据实际情况进行备份。

MySQL5.7.22主从配置_mysql_13

 

  • 从数据库导入数据

MySQL5.7.22主从配置_mysql_14

MySQL5.7.22主从配置_mysql_15

 

导入数据成功后,即可进行后续的主从配置,步骤与文档中的步骤一致即可。

 

6

总结

 

1.在主从配置过程中,数据库不可写入,否则会导致配置不成功。

2.在主节点数据库有数据的情况下,需要先对数据进行备份,然后导入到从数据库中,同时限制主节点数据库的写入操作,接下来才能进行主从的配置。

3.主从配置可以通过读写分离来实现服务器的负载均衡,同时通过数据的复制来实现数据的异地备份以及在主节点出现故障时,可以切换从节点继续提供数据上的服务。