售前咨询400-838-0503

如何搭建数据库主从复制?

发布:2025-05-04 06:44

手把手教你搭建MySQL主从复制架构:从零开始的高可用方案

在现代互联网应用中,数据库的高可用性至关重要。MySQL主从复制(Master-Slave Replication)作为最经典的数据库容灾方案之一,不仅能够实现读写分离,还能有效提升系统可用性。本文将用实战演示的方式,带你一步步完成MySQL主从架构的搭建。

一、准备工作

环境要求:

  • 至少两台服务器(主库1台,从库1台)
  • 相同版本的MySQL(推荐5.7+)
  • 服务器间网络互通

网络配置建议:

主库IP:192.168.1.100
从库IP:192.168.1.101

二、主库配置步骤

1. 编辑主库my.cnf配置文件:

[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_format = ROW
binlog-do-db = 需要复制的数据库名
sync_binlog = 1

2. 创建复制专用账号:

CREATE USER 'repl'@'192.168.1.101' IDENTIFIED BY 'Repl@1234';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101';

3. 查看主库状态(记录File和Position值):

SHOW MASTER STATUS;

三、从库配置步骤

1. 编辑从库my.cnf配置文件:

[mysqld]
server-id = 2
relay_log = mysql-relay-bin
read_only = 1

2. 配置主从连接:

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl',
MASTER_PASSWORD='Repl@1234',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

3. 启动复制线程:

START SLAVE;

四、验证复制状态

1. 检查从库状态:

SHOW SLAVE STATUS\G

重点关注以下指标:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Seconds_Behind_Master: 0

2. 主库创建测试数据,观察从库同步情况

五、常见问题排查

问题1:Slave_IO_Running显示Connecting

解决方案:检查网络连接、复制账号权限、密码是否正确

问题2:出现复制错误

解决方案:

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;

问题3:主从数据不一致

解决方案:使用pt-table-checksum工具检测,pt-table-sync工具修复

六、进阶配置建议

1. 半同步复制:确保至少一个从库接收到数据

2. GTID复制:简化故障转移和位置追踪

3. 延迟复制:防止误操作导致数据丢失

4. 多线程复制:提升从库应用日志速度

通过本文的详细步骤,你已经成功搭建了MySQL主从复制环境。这种架构不仅能提高系统的可用性,还能实现读写分离,显著提升数据库性能。建议定期监控复制状态,并考虑实现自动化故障转移机制,如结合MHA或Orchestrator工具。

记住:生产环境部署前,务必进行充分测试!

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单