尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Mysql DBA学习笔记(主从复制) - 实践

Mysql DBA学习笔记(主从复制) - 实践
📅 发布时间:2026/6/18 10:54:36

Mysql DBA学习笔记(主从复制) - 实践

一、核心概念

主从复制指:将主数据库的DDL和DML语句通过二进制日志(Binlog)传到从库服务器中,然后在从库上面对这些日志再重新执行一遍,从而使从库和主库的信息保持同步,从而达成数据转移、读写分离、数据备份。

Mysql的主从复制是一个异步的复制过程。

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

二、原理

步骤:
1、2)主库进行增删改运行 / 执行DDL语句时,将所有内容变更记录到二进制日志中。
3)从库的IO线程发出请求读取主库的binlog日志。
4、5)从库的IO线程会将主库的binlog日志写到从库自己的relay log中继日志中。
6、7)从库的另一个sql thread线程读取relay log日志中记录的数据变化,并同步到从库自己数据库的数据变化。

注:二进制日志不记录select这种查询语句,二进制日志默认的ROW日志格式记录的是每行的数据变更。

三、主从复制的搭建

1)服务器准备

  • 主库:192.168.200.200
  • 从库:192.168.200.201
  • Mysql版本:8.0及以上版本

两台服务器都开放指定3306端口号:

firewall-cmd --zone=public --add-port=3306/tcp -permanent

firewall-cmd -reload

2)主库设置

  • 修改主库配置文件

vim /etc/my.cnf

# mysql 服务ID,保证在整个集群环境中它是唯一,默认为1

server-id=1

# 是否只读,1 代表只读,0 代表读写

read-only=0

# 开启二进制日志

log-bin=mysql-bin

-- 二选一

# 设置应该同步的数据库

binlog-do-db=db01

# 设置不需要同步的数据库

binlog-ignore-db=mysql(忽略系统库)

  • 重启mysql服务

systemctl restart mysqld

  • 创建复制用户

# 创建账户,作用:授予从库连接主库并读取二进制日志

# 创建用户和密码,使用户能从任意主机上连接mysql服务

create user 'user1'@'%' identified by 'password'通过(这里'%'代表任意主机,也能够指定特定主机'192.168....‘’)

# 给用户分配主从复制权限

grant replication slave on *.* to 'user1'@'%'

# 查看主库状态

show master status

File :最终写入哪个二进制日志记录
Position :写入位置

3)从库配置

  • 修改从库配置文件

vim /etc/my.cnf

唯一,默认为1,就是# mysql 服务ID,保证在整个集群环境中它从库与主库不一样即可

server-id=2

# 是否只读,1 代表只读,0 代表读写,从库只需要查询不需要写入

read-only=1

# 开启relay log中继日志

relay-log=mysql-relay

  • 重启mysql服务

systemctl restart mysqld

  • 调整主从关系

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之前的版本:

change master to
master_host='192.168.200.200',

master_user='user1',

master_password='password',

master_log_file='xxx',-- 使用show master status 查看到"File"对应的值

master_log_pos=xxx;-- 使用show master status 查看到"Position"对应的值

  • 开启同步

start replica; -- 8.0.22之后

start slave; -- 8.0.22之前

  • 查看主从同步状态

show replica status\G; -- 8.0.22之后

show slave status\G; -- 8.0.22之前

(其中 "\G" 表示将数据列转化为行表明)

  • 验证主从同步

主要看:

Replica_IO_Running

Replica_SQL_Running

是否都正常

4)同步失败处理

-- 查看错误信息

show slave status\G

-- 解决方案

1. 跳过错误

set global SQL_SLAVE_SKIP_COUNTER = 1;

start slave;

2. 重置从库

stop slave;

reset slave;

start slave;

参考作者/文章:
黑马程序员 - Mysql数据库从入门到精通
博客园 - https://www.cnblogs.com/it-feiyu/p/18630316

相关新闻

  • Win环境下包管理工具
  • VRNN论文总结 - 指南
  • 2025中医师承培训、考试、认证机构权威推荐榜:名师传承与临床实践口碑之选

最新新闻

  • VS2019使用Microsoft Web Browser控件获取网页源码
  • 2026玉林防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配桂东南盆地回南天防潮暴雨甄选指南 - 宅安选房屋修缮
  • Django毕设项目:基于 Django+Vue 的电信业务资费结算管理系统的设计与实现 基于 Django+Vue 的移动通信资费后台管控平台 (源码+文档,讲解、调试运行,定制等)
  • RE46C109低功耗报警驱动芯片:集成LDO与升压驱动的设计实战
  • 从CVE-2026-24763看沙箱逃逸:环境变量注入如何攻破AI智能体安全防线
  • 【人员】人员批量处理与外部数据导入

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号