mysq5.7主从复制原理及实现

1.原理

1. 数据库有个bin-log二进制文件,记录了所有sql语句。
2. 我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
3. 让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。

	master开启bin-log功能,日志文件用于记录数据库的读写增删
	需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,
	Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。
	MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,
	position返回给slave IO线程。
	slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个
	master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
 	slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,
	在slave数据库中去执行。

2.环境介绍

192.168.110.208 主
192.168.110.129 从
centos7   mysql5.7

mysql5.7安装参考
https://blog.csdn.net/weixin_37714489/article/details/90672967
https://blog.csdn.net/weixin_37714489/article/details/86220616

3.主服务器配置

1. 在/etc/my.cnf文件中新增内容

vim /etc/my.cnf 新增一下内容
server-id=208  ###服务器ip
log-bin=mysql-bin   ###开始日志文件

2.重启mysql服务

 service mysqld restart

3.验证是否配置成功
查询配置的server_id
show variables like '%server_id%';
在这里插入图片描述
查询主的二进制文件
show master status;
在这里插入图片描述

4.从服务器配置

1. 在/etc/my.cnf文件中新增内容

vim /etc/my.cnf 	新增一下内容
server-id=129			###服务器ip
log-bin=mysql-bin   	###开始日志文件
binlog_do_db=test 		 ###同步数据库

2.重启mysql服务

service mysqld restart

3.验证是否配置成功
查询配置的server_id
show variables like '%server_id%';
查询主的二进制文件
show master status;
**4.从服务器同步主服务器c

change master to master_host='192.168.110.208',master_user='root',
master_password='root',master_log_file='mysql-bin.000009',master_log_pos=120;

5.开启从节点

start slave

6.查看从服务器复制功能状态

show slave status

在这里插入图片描述

5.测试是否成功

在主mysql中创建一个test的数据库,然后去从库中查看是否存在test数据库,则表示成功。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值