欢迎光临
我们一直在努力

如何在云服务器上搭建数据库主从复制?

云服务器搭建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)实现自动读写分离,进一步提升系统性能。

赞(0)
未经允许不得转载:莱卡云 » 如何在云服务器上搭建数据库主从复制?