MySQL主从复制

  • mysql主从复制是一个异步的复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库的内容与主库保持一致。

实验环境

主机 IP地址 主要软件
主服务器 192.168.27.128 mysql5.7.17;ntp
从服务器1 192.168.27.139 mysql5.7.17;ntp
从服务器2 192.168.27.142 mysql5.7.17;ntp

搭建主从复制

1、主服务器建立时间同步环境

systemctl stop firewalld.service

setenforce 0

yum install ntp -y

vim /etc/ntp.cnf

service 127.127.1.0             #本地时钟源
fudge 127.127.1.0 stratum 8     #设置层级为8

systemctl start ntp.service #开启服务

2、两台从服务器进行时间同步

systemctl stop firewalld.service

setenforce 0

yum install ntp -y

systemctl start ntp.service

yum install ntpdata -y

/usr/sbin/ntpdata 192.168.27.128 #进行时间同步

3、配合主服务器

vim /etc/my.cnf

server-id = 11
log-bin=master-bin              #主服务器二进制日志
log-slave-updates=true          #允许从服务器和主服务器同步

systemctl restart mysqld.service

mysql -u root -p #进入目mysql

grant replication slave on . to 'myslave'@'192.168.27.%'identified by'123456'; #允许192.168.27.0网段的从服务器使用账号密码登录

flush privileges; #更新权限

show master status; #查看主服务器状态

4、配置从服务器(两台从服务器配置相同)

vim /etc/my.cnf

server-id = 22                                  #两台从服务器不同
relay-log=relay-log-bin                     #开启中继日志
relay-log-index=slave-relay-bin.index       #确定中继位置

systemctl restart mysqld.service

mysql -u root -p

change master to master_host='192.168.27.128',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=603; #配置同步

start slave;

show slave status\G; #查看slave状态

5、测试
  • 在主服务器创建test01数据库,在从服务器上会同步到;

  • 主服务器:

  • 从服务器: ![](http://i2.51cto.com/images/blog/201807/11/dd5d22ab2dc551a830eaa8afe32f19de.jpg?x-oss- process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)