侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

简述MySQL主从复制的基本原理及其作用

2025-12-14 / 0 评论 / 3 阅读

题目

简述MySQL主从复制的基本原理及其作用

信息

  • 类型:问答
  • 难度:⭐

考点

主从复制原理,主从复制作用,主从复制配置要点

快速回答

MySQL主从复制是通过二进制日志实现的数据同步机制,主要作用包括:

  • 读写分离:主库处理写操作,从库处理读操作
  • 数据备份:从库作为实时热备份
  • 高可用基础:主库故障时可快速切换从库

基本工作流程:

  1. 主库将数据变更写入二进制日志(binlog)
  2. 从库的IO线程读取主库的binlog
  3. 从库的SQL线程重放binlog中的操作
## 解析

一、核心原理说明

主从复制基于三个核心组件:

  • Binary Log (binlog):主库记录所有数据变更的日志文件
  • I/O Thread:从库连接主库,读取binlog到本地中继日志(relay log)
  • SQL Thread:从库执行relay log中的SQL语句实现数据同步
# 主库binlog配置示例 (my.cnf)
[mysqld]
server-id=1
log-bin=mysql-bin # 启用binlog
binlog_format=ROW # 推荐使用ROW格式

二、配置步骤示例

主库配置:

  1. 创建复制账号:
    CREATE USER 'repl'@'%' IDENTIFIED BY 'SlavePass123!';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  2. 重启MySQL使配置生效

从库配置:

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='SlavePass123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

START SLAVE; # 启动复制

三、最佳实践

  • 网络优化:主从服务器部署在同机房减少延迟
  • 监控指标:定期检查 SHOW SLAVE STATUS\G 中的:
    • Seconds_Behind_Master(复制延迟)
    • Slave_IO_Running / Slave_SQL_Running(线程状态)
  • 版本一致性:主从MySQL版本尽量保持一致

四、常见错误

  • 错误1217:主键冲突,通常因从库被直接写入导致
  • 错误1236:binlog丢失,需重建主从关系
  • 复制中断:检查网络、权限、版本兼容性

五、扩展知识

  • 复制格式
    • STATEMENT(基于SQL语句)
    • ROW(基于行变化,推荐)
    • MIXED(混合模式)
  • 半同步复制:主库提交事务前需至少一个从库确认
  • GTID复制:全局事务ID,简化故障切换