MySQL主从复制

发布时间:2024年01月02日

MySQL主从复制的工作原理

主开启二进制日志

从开启中继日志(binlog)

1.数据更新写入二进制日志

2.开启io线程向主请求二进制日志事件

3.主为每个io线程开启dump线程向从发送二进制日志事件

4.从保存二进制日志事件到中继日志

5.从开启SQL线程读取中继日志中的二进制事件并解析成sql语句进行重放/逐一执行。

MySQL的复制类型

1)STATEMENT:基于语句的复制(mysql默认采用基于语句的复制,执行效率高)

2)ROW:基于行的复制。

3)MIXED:混合类型的复制(默认采用基于语句复制,一旦发现无法精确复制时,就会采用基于行复制。

搭建 MySQL主从复制

实验准备

1台主数据库,两台从数据库

主:192.168.116.60

从1:192.168.116.70

从2:192.168.116.80

1、Mysql主从服务器时间同步

systemctl status ntpd          #检查ntpd服务是否开启
systemctl enable --now ntpd    #设置永久并立即开启ntpd服务


vim /etc/ntp.conf 
将第8行注释,并复制到下一行
restrict default nomodify         #客户端不可以修改时间参数,但可以同步时间服务器


server ntp.aliyun.com iburst    #阿里云的服务器

systemctl restart ntpd          #重启ntpd服务
netstat -lntup | grep ntpd      #查看ntpd端口


date                            #查看当前时间
ntpq -p                         #查看当前ntp服务器状态


切到从服务器里
ntpdate 192.168.116.60          #跟主服务器做同步
crontab -e                      #创建计划任务
*/30 * * * *  /usr/sbin/ntpdate 192.168.116.60 &> /dev/null
crontab -l                      #检查计划任务

?

?2、做主从复制

----主服务器的mysql配置-----

vim /etc/my.cnf
server-id=1
log-bin=mysql_bin			#添加,主服务器开启二进制日志
binlog_format=mixed         #设置复制类型

配置完后重启
systemctl restart mysqld


给服务器做授权
grant replication slave on *.* to 'myslave'@'192.168.116.%' identified by '123456';
flush privileges;
show master status\G        #查看当前状态

?----从服务器的mysql配置----

vim /etc/my.cnf
server-id = 2
relay-log=relay-log-bin
relay-log-index=relay-log-bin.index

------------------------------------------------
server-id = 2		                #修改,注意id与主的不同,两个从的id也要不同
relay-log=relay-log-bin		        #开启中继日志,从主服务器上同步日志文件记录到本地
relay-log-index=relay-log-bin.index	#定义中继日志文件的位置和名称,一般和relay-log在同一目录


systemctl restart mysqld            #重启mysqld服务

mysql
change master to master_host='192.168.116.60',master_port=3306,master_user='myslave',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=1053;

?

文章来源:https://blog.csdn.net/HanYuHao11/article/details/135343012
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。