本文介绍: 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后从库上对这些日志重新执行(也叫重做),从而使得从库主库数据保持同步。MySQL支持一台主库同时向多台从库进行复制从库同时也可以作为其他从服务器主库实现链状复制。

主从复制

主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步
MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
在这里插入图片描述

MySQL复制的有点主要包含以下三个方面:

  1. 主库出现问题可以快速切换到从库提供服务
  2. 实现读写分离,降低主库的访问压力。
  3. 可以在从库中执行备份,以避免备份期间影响主库服务
原理

MySQL的主从复制原理如下
在这里插入图片描述

从上图来看,复制分成三步:
Master主库在事务提交时,会把数据变更记录二进制日志文件Binlog中。
从库读取主库的二进制日志文件Binlog写入到从库的中继日志RelayLog
slave重做中继日志中的事件,将改变反映它自己的数据。

搭建

服务器准备
在这里插入图片描述

主库配置
1.修改配置文件/etc/my.cnf

#mysql服务ID,保证整个集群环境唯一取值范围:1-232-1,默认为1
server-id=1
#是否只读,1代表只读,0代表读写
read-only=0
#忽略的数据,指不需要同步数据库
#binlog-ignore-db=mysql
#指定同步数据库
#binlog-do-db=db01

2.重启MySQL服务器

systemctl restart mysqld

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

#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATEUSER'itcast'@'%'IDENTIFIEDWITH mysql_native_passwordBY'Root@123456';
#为itcast'@'%'用户分配主从复制权限
GRANT REPLICATIONSLAVE ON**TO'itCaSt'@'%';

4.通过指令查看二进制日志坐标

show master status;

字段含义说明

从库配置
1.修改配置文件/etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一,取值范围:1-232-1,和主库不一样即可
server-id=2
#是否只读,1代表只读,0代表读写
read-only=1

2.重新启动MySQL服务

systemctl restart mysqld

3.登录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中的语法。如果mysql是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

参数
在这里插入图片描述

原文地址:https://blog.csdn.net/Wksycxy/article/details/134701125

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10125.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注