宝塔面板跨服务器数据同步教程:双机备份零停机
之前发布的教程不够完美,安全性也不够,所以优化了很多地方
┌────────────────────────────────────────┐
│ 系统功能选项 │
├────────────────────────────────────────┤
│ 1. 配置远程主机 │
│ 2. 配置数据库权限 │
│ 3. 建立 ssh 连接 │
│ 4. 测试 ssh 连接 │
│ 5. 测试文件同步 │
│ 6. 测试数据库同步 │
│ 7. 添加定时任务▶ │
│ 0. 退出脚本 │
└────────────────────────────────────────┘
前言
为什么需要双机备份?
- 双服务器互备:主机宕机,备机即刻顶上
- 双节点反代:确保服务持续可用
- 自动化备份:目录增量同步 + 数据库全量备份
- 简单高效:一键部署,定时任务自动执行
适用环境:宝塔面板 7.7.0 及以上版本
快速部署
⚠️ 提醒:在使用脚本前,分别在两台服务器配置同步用户(下面有步骤)
脚本:
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/rsync-vps.sh && chmod +x rsync-vps.sh && ./rsync-vps.sh
配置同步用户
服务器 A 配置
- 登录 MySQL:
mysql -u root -p
- 创建同步用户
tongbu
并授权,仅修改密码即可,最好不要有特殊字符
CREATE USER 'tongbu'@'127.0.0.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'tongbu'@'127.0.0.1';
FLUSH PRIVILEGES;
- 验证配置:
# 查看同步用户权限
SHOW GRANTS FOR 'tongbu'@'127.0.0.1';
# 查看所有用户
SELECT user, host FROM mysql.user;
# 退出
exit
服务器 B 配置
按照服务器 A 相同步骤配置,确保用户名和密码一致。
宝塔面板配置
假设你需要把数据库同步到服务器B,在服务器B上打开宝塔面板,
配置步骤:
- 打开宝塔面板
- 点击"从服务器获取"
- 点击"同步所有"
之后的定时同步任务就不需要再次设置点击了
清理同步用户(可选)
# 登录 MySQL
mysql -u root -p
# 删除同步用户
DROP USER 'tongbu'@'127.0.0.1';
# 刷新权限
FLUSH PRIVILEGES;
# 验证删除
SELECT user, host FROM mysql.user;
# 退出
exit