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=)