MySQL主从复制

1.什么是主从复制

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

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

作用:

①主库出现问题,可以快速切换到从库提供服务;

②实现读写分离,降低主库的访问压力;

③可以在从库中执行备份,以避免备份期间影响主库服务。

2.主从复制的原理

主从复制是基于二进制日志binlog。主库的binlog日志会记录主库的所有DML和DDL操作,从库中的IOthread会来读取主库中的binlog日志,并将binlog日志写入自身(从库)的relay log(中继日志),接着从库中的SQLthread会来读取relay log(中继日志),并将当中的SQL语句写入自身的数据库,实现主从同步。

3.主从复制结构的搭建

主库配置:

①修改配置文件/etc/my.cnf

server-id=1 MySQL的服务ID,保证整个集群环境中唯一,默认为1

read-only=0 是否只读,1只读,0读写

(binlog-ignore-db-mysql 忽略的数据,指不需要同步的数据库;binlog-do-db=db01指同步的数据库)

②重启MySQL

systemctl restart mysqld

③登录mysql,创建远程连接的账号,并授予主从复制权限

#创建mur用户,并设置密码,该用户可以在任意主机连接该MySQL服务
create user 'mur'@'%' identified with mysql_native_password by 'Root@123456';

#为'mur'@'%'用户分配主从复制权限
grant replication slave on *.* to 'mur'@'%';

④通过指令,查看二进制日志坐标

show master status;

 

字段含义:

file:从哪个日志文件开始推送日志文件

position:从哪个位置开始推送日志

binlog_ignore_db:指定不需要同步的数据库

从库配置:

①修改配置文件/etc/my.cnf

server-id=2      服务ID,设置唯一

read-only=1      1:只读,0读写

(super-read-only=1  超级管理员也是只读的)

②重启MySQL

③登录mysql,设置主库配置

change replication source to source_host='xxx.xxx',source_user='xxx',
source_password='xxx',source_log_file='xxx',source_log_pos=xxx;

--8.0.23中的语法;如果是8.0.23之前的版本,执行下面的SQL

change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',
master_log_file='xxx',master_log_pos=xxx;

 ④开启同步操作

8.0.22之后执行start replica;  

8.0.22之前执行start slave;

⑤查看主从同步状态

8.0.22之后执行 show replica status;  

8.0.22之前执行 show slave status;

4.主从关系是否搭建成功

执行show replica status,查看参数Replica_IO_Running和Replica_SQL_Running,都为YES即主从复制搭建成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值