如何设置两个VPS的主从关系?有哪些具体步骤和注意事项?
| 步骤 |
操作说明 |
使用工具 |
配置示例 |
| 1. 环境准备 |
选择相同或兼容的操作系统版本,确保网络互通 |
SSH工具 |
Ubuntu 22.04 LTS |
| 2. 主服务器配置 |
修改配置文件启用二进制日志,设置唯一server-id |
MySQL配置文件 |
server-id=1log-bin=mysql-bin |
| 3. 从服务器配置 |
设置不同server-id,指定主服务器连接信息 |
MySQL配置文件 |
server-id=2masterhost='主服务器IP' |
| 4. 同步启动 |
在主服务器创建复制账号,从服务器启动同步 |
MySQL命令行 |
CHANGE MASTER TO...START SLAVE |
两个VPS设置主从的完整指南
一、主从架构概述
VPS主从设置通过将一台服务器(主节点)的数据变更自动同步到另一台服务器(从节点),实现负载均衡和高可用。主节点处理写入操作,从节点承担读取任务,这种架构特别适合数据库应用和需要高并发的业务场景^^1^^。
二、详细配置步骤
1. 基础环境准备
- 操作系统选择:建议使用Ubuntu LTS或CentOS Stream,确保主从系统版本一致^^2^^
- 网络配置:开放必要的端口(如MySQL默认3306),建议通过SSH密钥对认证增强安全性^^3^^
- 防火墙设置:配置白名单规则,仅允许主从服务器间通信
2. 主服务器配置
- 修改MySQL配置文件(my.cnf):
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
syncbinlog=1
- 创建专用复制账号:
CREATE USER 'repl'@'从服务器IP' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON . TO 'repl'@'从服务器IP';
FLUSH PRIVILEGES;
- 记录当前二进制日志位置:
SHOW MASTER STATUS;
(记下File和Position值供从服务器使用)^^4^^
3. 从服务器配置
- 修改配置文件(my.cnf):
[mysqld]
server-id=2
relay-log=relay-bin
read-only=1
- 启动同步进程:
CHANGE MASTER TO
MASTERHOST='主服务器IP',
MASTERUSER='repl',
MASTERPASSWORD='密码',
MASTERLOGFILE='主服务器记录的File值',
MASTERLOGPOS=主服务器记录的Position值;
START SLAVE;
- 验证同步状态:
SHOW SLAVE STATUS\G
(确保SlaveIO
Running和SlaveSQL
Running均为Yes)^^5^^
三、常见问题与解决方案
| 问题现象 |
可能原因 |
解决方案 |
| 从服务器报错”Can’t connect to master” |
网络不通/防火墙阻止 |
检查主从服务器间网络连通性,确认3306端口开放 |
| 同步延迟持续增大 |
主库写入压力过大/从库资源不足 |
优化查询语句,增加从库资源配置 |
| 主从数据不一致 |
未正确配置binlog格式 |
确保主库设置binlog-format=ROW |
| 从服务器拒绝连接 |
复制账号权限不足 |
重新授予REPLICATION SLAVE权限 |
四、性能优化建议
- 参数调优:根据业务负载调整
innodb
buffer
poolsize(建议设置为物理内存的70-80%)^^6^^
并行复制:在从库设置slaveparallelworkers参数(通常设为CPU核数的1.5倍)^^7^^
监控工具:使用Prometheus+Grafana监控主从延迟和资源使用情况^^2^^
通过以上步骤,您可以成功建立VPS主从架构。实际部署中建议定期检查同步状态,并根据业务增长适时调整资源配置。对于跨国部署场景,需特别注意网络延迟问题,可考虑启用binlog压缩功能减少传输量^^7^^。
发表评论