售前咨询400-838-0503

云服务器如何配置数据库主从?

技术文档 2025-05-20 02:54

云服务器数据库主从配置完全指南

在当今数字化时代,数据库的高可用性和负载均衡已成为企业IT架构的核心需求。本教程将手把手教你如何在云服务器环境中配置MySQL数据库主从复制,实现数据冗余备份和读写分离。

为什么要配置主从数据库?

  • 数据安全:从库可作为实时备份,防止主库故障导致数据丢失
  • 负载均衡:将读操作分散到从库,减轻主库压力
  • 高可用性:主库故障时可快速切换到从库
  • 数据分析:不影响生产环境的情况下在从库运行报表查询

准备工作

  1. 两台云服务器(建议相同配置)
  2. 已安装相同版本的MySQL(推荐5.7+)
  3. 确保服务器间网络互通(建议内网连接)
  4. 主库需开放3306端口
  5. 建议使用专有网络VPC确保传输安全

详细配置步骤

1. 主库配置

# 编辑MySQL配置文件
vim /etc/my.cnf

# 添加以下配置
[mysqld]
server-id = 1           # 唯一服务器ID
log_bin = mysql-bin     # 启用二进制日志
binlog_format = ROW     # 推荐使用ROW格式
binlog-do-db = 需要复制的数据库名 # 可选,指定要复制的数据库
    

2. 创建复制账号

# 登录MySQL
mysql -u root -p

# 创建复制专用账号
CREATE USER 'repl'@'从库IP' IDENTIFIED BY '强密码';

# 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库IP';

FLUSH PRIVILEGES;

# 查看主库状态,记录File和Position值
SHOW MASTER STATUS;
    

3. 从库配置

# 编辑MySQL配置文件
vim /etc/my.cnf

[mysqld]
server-id = 2           # 必须与主库不同
relay-log = mysql-relay-bin
read_only = 1           # 设为只读(超级用户除外)
    

4. 启动从库复制

# 登录从库MySQL
mysql -u root -p

# 配置主库连接
CHANGE MASTER TO
MASTER_HOST='主库IP',
MASTER_USER='repl',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='记录的File值',
MASTER_LOG_POS=记录的Position值;

# 启动复制
START SLAVE;

# 查看复制状态
SHOW SLAVE STATUS\G
    

验证配置

在主库创建测试表或插入数据后,检查从库是否同步。观察Seconds_Behind_Master值应为0,表示实时同步。

常见问题排查

问题现象 解决方案
Slave_IO_Running: No 检查网络连接、复制账号权限、防火墙设置
Slave_SQL_Running: No 查看错误日志,可能需要跳过错误或重新同步
复制延迟严重 优化主库写入性能,考虑增加从库服务器配置

安全建议

  • 使用专有网络而非公网进行主从通信
  • 定期更换复制账号密码
  • 监控复制状态,设置告警机制
  • 考虑启用SSL加密复制通道

进阶配置

掌握基础主从复制后,可进一步探索:

  • 配置GTID复制简化故障恢复
  • 设置多级复制架构
  • 实现半同步复制提高数据安全性
  • 结合读写分离中间件(如ProxySQL)

通过合理配置主从数据库,您的应用将获得更高的可用性和扩展性,为业务发展提供坚实的数据库架构支持。

如本公告涉及你的产品,或有不清楚之处,可提交工单确认。

提交工单