Linux云服务器数据库主从复制配置全攻略
在当今数据驱动的时代,数据库高可用性配置已成为企业IT基础设施的必备方案。本文将详细介绍在Linux云服务器上配置MySQL数据库主从复制的完整流程,帮助您构建可靠的数据备份和读写分离架构。
一、准备工作
在开始配置前,请确保您已准备好以下环境:
- 两台Linux云服务器(建议使用相同发行版)
- MySQL 5.7或以上版本已安装
- 服务器间网络互通(建议配置内网连接)
- root或具有sudo权限的用户
重要提示:生产环境建议使用专用网络通道,避免通过公网传输敏感数据。
二、主服务器配置
1. 修改MySQL配置文件
# 编辑my.cnf文件(路径可能因发行版而异)
sudo vi /etc/mysql/my.cnf
# 在[mysqld]段落下添加以下配置
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
binlog_do_db = 需要复制的数据库名
expire_logs_days = 10
max_binlog_size = 100M
2. 创建复制专用账户
mysql> CREATE USER 'replicator'@'从服务器IP' IDENTIFIED BY '强密码';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'从服务器IP';
mysql> FLUSH PRIVILEGES;
3. 锁定数据库并获取主库状态
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
记录File和Position的值,从服务器配置时需要用到。
三、从服务器配置
1. 修改MySQL配置文件
server-id = 2 # 必须与主服务器不同
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
read_only = 1 # 从库设为只读
2. 配置复制链路
mysql> CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replicator',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='主库记录的File值',
MASTER_LOG_POS=主库记录的Position值;
3. 启动复制进程
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G
检查Slave_IO_Running和Slave_SQL_Running是否为Yes。
四、验证与监控
在主库创建测试数据,观察从库是否同步:
# 主库操作
mysql> CREATE DATABASE replication_test;
mysql> USE replication_test;
mysql> CREATE TABLE test_table(id INT);
# 从库验证
mysql> SHOW DATABASES; # 应能看到replication_test
常用监控命令:
SHOW SLAVE STATUS\G– 查看复制状态SHOW PROCESSLIST;– 查看数据库进程SHOW MASTER STATUS;– 查看主库二进制日志状态
五、故障排除
常见问题及解决方案:
- Slave_IO_Running为Connecting:检查网络连接、防火墙设置和复制账户权限
- 复制位置错误:使用
STOP SLAVE; RESET SLAVE; CHANGE MASTER TO...重新配置 - 数据不一致:考虑使用
mysqldump重新初始化从库
建议设置定期监控脚本,自动检查复制状态并及时报警。
总结
通过本文的详细步骤,您已成功在Linux云服务器上配置了MySQL主从复制。这种架构不仅能提高数据安全性,还能通过读写分离提升系统整体性能。随着业务增长,您可以进一步考虑配置级联复制或使用GTID实现更灵活的拓扑结构。
记住定期检查复制状态,并考虑实现自动化监控方案,确保数据同步的可靠性。

