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

参数名

相关推荐
SeaTunnel4 分钟前
87 个 PR 迭代复盘|Apache SeaTunnel 5 月版本重点更新解读
大数据·数据库·开源·apache·seatunnel
DolphinScheduler社区8 分钟前
实战演示 | 基于 Apache DolphinScheduler 与 Apache SeaTunnel 实现 MySQL 到 Doris 离线定时增量同步
数据库·mysql·开源·apache·海豚调度·大数据工作流调度
bmjIjFNC810 分钟前
Redis分布式锁进第九十一篇
数据库·redis·分布式
承渊政道13 分钟前
【MySQL数据库学习】MySQL基本查询(下)
数据库·学习·mysql·leetcode·bash·数据库开发·数据库系统
摇滚侠14 分钟前
Spring 零基础入门到进阶 基于注解的声明式事务 65-70
数据库·mysql·spring
≮傷£≯√17 分钟前
动态创建combobox
数据库
这个人需要休息24 分钟前
优惠卷类型漏洞---优惠卷的并发使用
mysql·网络安全·逻辑漏洞·后端架构
摇滚侠26 分钟前
Spring 零基础入门到进阶 基于 XML 的声明式事务 71
xml·数据库·spring
小二·35 分钟前
MySQL 8.0 性能优化与索引原理
android·mysql·性能优化
AC赳赳老秦38 分钟前
OpenClaw + 华为云自动化:批量管理云资源、生成月度云账单分析与成本优化报告
java·开发语言·javascript·人工智能·python·mysql·openclaw