mysql主从同步的简单实现

简单介绍:

一主一从:

1.主库会将所有的更新记录保存到 Binarylog 文件。

2.每当有从库连接到主库的时候,主库都会创建一个 log dump 线程发送 Binarylog 文件到从库。

3.当从库复制开始的时候,从库就会创建两个线程进行处理,一个 I/O 线程,一个 SQL 线程。

4.I/O 线程去请求主库的 Binarylog文件,并将得到的 Binarylog 文件写到 Relaylog 文件中。

5.SQL 线程会读取 Relaylog 文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致。

问题:复制在slave上是串行的,所以在master上的并行更新操作不能在slave上并行操作.这也是导致主从复制延迟的一个重要因素.

MySQL5.7以后开始支持slave的并行复制.

 实现步骤:

环境

master主库ip地址:172.17.0.2 端口号:3306

slave从库ip地址:172.17.0.3 端口号: 3307

配置master主库服务器

修改my.cnf

server-id=101     #服务器唯一ID,默认是1

log-bin=mysql-bin  #主库必须启用二进制日志

非必须

binlog-do-db=demo #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可binlog-ignore-db=mysql  #不需要备份的数据库名,

创建复制账号

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

 

配置slave主库服务器

           修改my.cnf

server-id=102     #配置server-id,让从服务器有唯一ID

relay_log = mysql-relay-bin  #打开Mysql中继日志

非必须

read_only = 1     #设置只读权限

log-bin = mysql-slave-bin   #开启从服务器二进制日志(一主一从时从库可以不启)

log_slave_updates = 1   #使得更新的数据写进二进制日志中(一主一从时从库可以不开启)

 

        从库进行changemaster设置-主库的logfile名称和position位置点等信息

change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306,master_log_file='mysql-bin.000001', master_log_pos= 1658, master_connect_retry=30;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值