MySQL--主从复制

主从复制

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

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

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

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

MySQL的主从复制原理如下

从上图来看,复制分成三步:

Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog中。

从库读取主库的二进制日志文件Binlog,写入到从库的中继日志RelayLog。

slave重做中继日志中的事件,将改变反映它自己的数据。

搭建

服务器准备

主库配置

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

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

2.重启MySQL服务器

bash 复制代码
systemctl restart mysqld

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

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

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

bash 复制代码
show master status;

字段含义说明:

  • file:从哪个日志文件开始推送日志文件
  • position:从哪个位置开始推送日志
  • binlog_ignore_db:指定不需要同步的数据库

从库配置

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

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

2.重新启动MySQL服务

bash 复制代码
systemctl restart mysqld

3.登录mysql,设置主库配置

bash 复制代码
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:

bash 复制代码
CHANGE MASTER TO MASTER_HOST='xXX.XXX.XXX.XXX', MASTER_USER='xxX', MASTER_PASSWORD='xXX', MASTER_LOG_FILE='xXX', MASTER_LOG_POS=XXX

参数名

相关推荐
启明真纳4 分钟前
MySQL基本概念
数据库·mysql
wregjru18 分钟前
【QT】1.QT 基础入门
数据库
2301_8187320619 分钟前
前端一直获取不到后端的值,和数据库字段设置有关 Oracle
前端·数据库·sql·oracle
皙然19 分钟前
MyBatis 执行流程源码级深度解析:从 Mapper 接口到 SQL 执行的全链路逻辑
数据库·sql·mybatis
BXCQ_xuan21 分钟前
解决飞牛nas更新后挂载硬盘提示“数据库读写失败”
数据库·飞牛nas
栗子叶21 分钟前
阅读MySQL实战45讲专栏总结
数据库·mysql·innodb·主从同步·数据库原理
一只鹿鹿鹿22 分钟前
springboot集成工作流教程(全面集成以及源码)
大数据·运维·数据库·人工智能·web安全
Coder_Boy_25 分钟前
基于SpringAI的在线考试系统-数据库设计关联关系设计
服务器·网络·数据库
李慕婉学姐32 分钟前
Springboot七彩花都线上鲜花订购平台rzb8b4z2(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
码农阿豪32 分钟前
时序数据爆发增长,企业如何破解存储与分析困局?
数据库·mysql·金仓