云服务器搭建MySQL主从复制全攻略:从零实现高可用架构
在当今数据驱动的时代,数据库高可用性已成为企业IT架构的核心需求。本文将手把手教你如何在云服务器环境(以阿里云ECS为例)搭建MySQL主从复制架构,实现数据自动同步和读写分离,让您的应用获得企业级数据库可靠性。
一、准备工作
1.1 服务器配置要求
- 主服务器:2核4G配置起步(根据数据量调整)
- 从服务器:建议与主服务器相同配置(至少1:1)
- 操作系统:CentOS 7.6+/Ubuntu 18.04+
- 网络环境:确保主从服务器间网络互通(建议同地域部署)
1.2 必须安装的软件
# 在两台服务器上执行
yum install -y mysql-community-server
systemctl enable mysqld
systemctl start mysqld
二、主服务器配置详解
2.1 修改my.cnf配置文件
[mysqld]
server-id = 1 # 唯一服务器ID
log_bin = mysql-bin # 开启二进制日志
binlog_format = ROW # 推荐使用ROW格式
binlog-do-db = your_db_name # 指定要复制的数据库(可选)
2.2 创建复制专用账户
CREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
2.3 获取主服务器状态信息
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
# 记录File和Position值(关键!)
UNLOCK TABLES;
三、从服务器配置步骤
3.1 基础配置
[mysqld]
server-id = 2 # 必须与主服务器不同
relay-log = relay-log-bin # 中继日志设置
read_only = 1 # 从库设为只读(推荐)
3.2 启动复制进程
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='StrongPassword123!',
MASTER_LOG_FILE='mysql-bin.000001', # 主库记录的File值
MASTER_LOG_POS=1234; # 主库记录的Position值
START SLAVE;
3.3 验证复制状态
SHOW SLAVE STATUS\G
# 检查Slave_IO_Running和Slave_SQL_Running是否为Yes
四、高级配置与优化
4.1 半同步复制配置(提高数据安全性)
# 主库:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
# 从库:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
4.2 常见问题排查
- 网络问题:检查防火墙设置,确保3306端口互通
- 权限问题:确认复制账号有足够权限
- 数据不一致:使用pt-table-checksum工具校验
五、生产环境最佳实践
实际部署时建议:① 使用云厂商的专有网络提升内网传输速度 ② 设置监控告警(如复制延迟超过阈值)③ 定期测试故障切换流程 ④ 考虑使用GTID模式简化故障恢复。
通过本文的配置,您已成功搭建了MySQL主从复制架构,下一步可以结合中间件(如MyCat、ProxySQL)实现自动读写分离,进一步提升系统性能。