生产环境下,如果对同一个数据库服务器即做写服务又做读服务,无论是从安全性、高可用性还是高并发等各个角度都不能满足实际需求,因此,一般都用多台数据库服务器通过主从复制来同步数据提高安全性,再通过读写分离来提升数据库的并发负载能力,以及高可用性。

案例拓扑图:

案例环境:

搭建MySQL主从复制

MySQL的主从复制与读写分离密不可分,只有在实现主从复制的前提下才能完成读写分离

一、建立时间同步环境

1.在Master(MySQL服务器上安装配置ntp服务 

启动时间同步服务器

注意防火墙,ntpd服务的端口号是udp的123

2.在两个Slave(MySQL服务器上分别安装ntpdate并进行与Master的时间同步

二、安装MySQL数据库,分别在Master、Slave1和Slave2上安装

安装数据库的部分请参考: 《》

注意防火墙:安装好MySQL之后,防火墙开启对应的端口号

三、配置Master(MySQL)服务器

1.在/etc/my.cnf配置文件中修改和添加如下内容:

重启mysql服务

2.登录MySQL程序,给从服务器授权(为从服务器创建一个用户为“slaves”,密码是“123456”,授予“replication slave”复制权限)

3.查看二进制文件的状态信息,其中File列显示日志名,Position列显示偏移量,这两个值后面会用到

Master(MySQL)服务器配置完成

四、配置Slave(MySQL)服务器

1.在Slave1服务器的/etc/my.cnf配置文件中修改和添加如下内容:

重启mysql服务

2.登录MySQL程序,配置同步

注意配置项中“master_log_file”和“master_log_pos”分别指定刚刚查看的主MySQL服务器的二进制文件名和偏移量

3.启动Slave1服务器的同步功能

查看Slave状态,确保图中的两个值为YES

在Slave2服务器上做同样的操作,只有配置文件my.cnf中的server-id不能相同,可以将值改成3

五、验证主从复制效果

1.在主服务器上新建数据库test_db

2.在服务器上查看是否有会出现这个test_db的数据库

可以看到在从服务器上新增了test_db这个库,主从复制成功