Mysql主从复制

概述

复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志文件重新执行,从而得从库和主库的数据保持同步

mysql支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状复制

原理

在这里插入图片描述

1、Master主库在事务提交时,会把数据变更作为时间Events记录在二进制日志文件Binlog中
2、主库推送二进制日志文件Binlog中的日志事件到从库中继日志Relay Log
3、slave重做中继日志的事件,将改变反映它自己的数据

优势

主库出现问题,能快速切换到从库提供服务
主库进行更新,从库进行查询,实现读写分离,降低主库访问压力
可以在从库中执行备份,避免备份期间影响主库的服务

搭建

配置master

在master的配置文件my.cnf中配置

#mysql服务id,保证整个集群环境中唯一
server-id=1
#mysql binlog日志的存储路径和文件名
log-bin=/usr/local/mysql/mysqlbin
#是否只读 1代表只读,0代表读写
read-only=0
#忽略的数据,指不需要同步的数据库,mysql是管理
binlog-ignore-db=mysql

#指定同步的数据库
#binlog-do-db=db01

重启mysql: service mysql restart;
创建同步数据的账户,并且进行授权操作

grant replication slave on *.* to 'username'@'172.16.228.105' identified by 'username';
flush privileges;

查看master状态 show master status;

File:从哪个日志文件开始推送日志文件
Position:从哪个位置开始推送日志
Binlog_Ignore_DB:指定不需要同步的数据库

配置slave

在slave配置文件中配置

#mysql服务端ID,唯一
server-id=2
#指定binlog日志
log-bin=/usr/local/mysql/mysqlbin

配置完成后重启Mysql:service mysql restart;
执行命令

#指定连接的主库
change master to master_host= '172.16.xxx.xxx' , master_user='masterSynusername' ,master_password='masterSynuserpassword'
#指定binlog日志文件及偏移量
master_log_file='mysqlbin.000001' , master_log_pos=413;

开启同步操作

start slave;
show slave status\G;
	#关注这两项
	Slave_IO_Running:Yes
	Slave_SQL_Running:Yes

停止同步

stop slave;
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值