文章目录
一、为何要进行主从复制
二、Mysql 主从复制的类型
三、主从复制的工作过程
四、案例演示:
第一步:设置时间同步
第二步:主服务器配置
第三步:从服务器配置
第四步:测试主从同步
一、为何要进行主从复制?
在企业网站中,如果后端只要一台 Mysql 服务器时,就会造成,比如单点故障,无法处理大量的并发数据请求和造成数据丢失等一系列问题。
因此,这就体现了 Mysql 主从复制的重要性了:
一台主 Mysql 服务器,多台从服务对数据进行备份,形成主备;
确保主备 Mysql数据库服务器的数据是一样的;
主服务器宕机了,备服务器依旧可以继续工作,数据有保障。
二、Mysql 主从复制的类型:
(1)基于语句的复制(默认):
在主服务器上执行的语句,从服务器执行同样的语句。
(2)基于行的复制:
把改变的内容复制到从服务器。
(3)混合类型的复制:
一旦发现基于语句无法精确复制时,就会采取基于行的复制。
三、主从复制的工作过程:
四、案例演示:
环境准备:
两台虚拟机,都搭建好 Mysql 服务;
一台做主服务器,另外一台做从服务器;
实验结果验证:在主服务器上执行的语句,从服务器都会执行同样语句。
主服务器(master) IP地址:192.168.220.141
从服务器 (slave) IP地址:192.168.220.140
第一步:设置时间同步
1、主服务器上:
(1)安装时间服务器:
yum install ntp -y
(2)修改配置文件:
vim /etc/ntp.conf
server 127.127.220.0 //本地是时钟源
fudge 127.127.220.0 stratum 8 //设置时间层级为8
(3)重启服务,并且关闭防火墙等
systemctl start ntpd //开启时间同步服务
systemctl stop firewalld //关闭防火墙
setenforce 0
2、从服务器上:
(1)安装时间服务器:
yum install ntp ntpdate -y
(2)开启服务,关闭防火墙:
systemctl start ntpd
systemctl stop firewalld
setenforce 0
(3)进行时间同步:
/usr/sbin/ntpdate 192.168.220.141
第二步:主服务器配置
1、修改配置文件:
vim /etc/my.cnf
server-id = 11 //指定id号,服务器的唯一标识
log-bin=master-bin //主服务器日志文件
log-slave-updates=true //从服务器更新二进制日志
2、重启服务:
systemctl restart mysqld.service
3、进行数据库:
mysql -uroot -p //进入数据库
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.220.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES; //刷新MySQL的系统权限相关表
show master status; //查看主服务器状态
第三步:从服务器配置
1、修改配置文件:
vim /etc/my.cnf
server-id = 22 //指定id号,服务器的唯一标识
relay-log=relay-log-bin //从主服务器上同步日志文件记录到本地
relay-log-index=slave-relay-bin.index //定义relay-log的位置和名称
2、重启mysql服务:
systemctl restart mysqld.service
3、进入数据库:
mysql -uroot -p
change master to master_host='192.168.220.141',master_user='myslave',master_password='123456',master_log_file='master-bin.000001',master_log_pos=604;
start slave;
show slave status\G; //查看状态
第四步:测试主从同步
1、先主服务器上创建一个名为 school 的数据库:
create database school;
2、在从服务器上查看一下数据库,是否也有 school 这个库:
至此,主从同步已经配置完成。
来源:51CTO
作者:wx5d8a05337d6b9
链接:https://blog.51cto.com/14557584/2468506