宝塔面板跨服务器数据同步教程:双机备份零停机

之前发布的教程不够完美,安全性也不够,所以优化了很多地方

复制代码
┌────────────────────────────────────────┐
│            系统功能选项              │
├────────────────────────────────────────┤
│    1. 配置远程主机    │
│    2. 配置数据库权限    │
│    3. 建立 ssh 连接    │
│    4. 测试 ssh 连接    │
│    5. 测试文件同步    │
│    6. 测试数据库同步    │
│    7. 添加定时任务▶    │
│    0. 退出脚本    │
└────────────────────────────────────────┘

前言

为什么需要双机备份?

  • 双服务器互备:主机宕机,备机即刻顶上
  • 双节点反代:确保服务持续可用
  • 自动化备份:目录增量同步 + 数据库全量备份
  • 简单高效:一键部署,定时任务自动执行

适用环境:宝塔面板 7.7.0 及以上版本

快速部署

⚠️ 提醒:在使用脚本前,分别在两台服务器配置同步用户(下面有步骤)

脚本:

bash 复制代码
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/rsync-vps.sh && chmod +x rsync-vps.sh && ./rsync-vps.sh

配置同步用户

服务器 A 配置

  1. 登录 MySQL:
sql 复制代码
mysql -u root -p
  1. 创建同步用户tongbu并授权,仅修改密码即可,最好不要有特殊字符
sql 复制代码
CREATE USER 'tongbu'@'127.0.0.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'tongbu'@'127.0.0.1';
FLUSH PRIVILEGES;
  1. 验证配置:
sql 复制代码
# 查看同步用户权限
SHOW GRANTS FOR 'tongbu'@'127.0.0.1';

# 查看所有用户
SELECT user, host FROM mysql.user;

# 退出
exit

服务器 B 配置

按照服务器 A 相同步骤配置,确保用户名和密码一致。

宝塔面板配置

假设你需要把数据库同步到服务器B,在服务器B上打开宝塔面板,

配置步骤:

  1. 打开宝塔面板
  2. 点击"从服务器获取"
  3. 点击"同步所有"

之后的定时同步任务就不需要再次设置点击了

清理同步用户(可选)

sql 复制代码
# 登录 MySQL
mysql -u root -p

# 删除同步用户
DROP USER 'tongbu'@'127.0.0.1';

# 刷新权限
FLUSH PRIVILEGES;

# 验证删除
SELECT user, host FROM mysql.user;

# 退出
exit
相关推荐
东方佑12 分钟前
去魅:工具调用、Agent 调用、A2A、MCP、Harness 到底都是什么
服务器·网络·数据库
2401_8858850427 分钟前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
H.莓飛37 分钟前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节
xianyuCcCcCCCcc39 分钟前
Kubernetes :健康检查、认证授权与可视化面板
运维·云原生·kubernetes·dashboard
收纳过往1 小时前
数据库加索引的时机:慢查询日志说话
android·开发语言·数据库·python·低代码·rxjava
Zenova EdgeOS1 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome
Dory_Youth1 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记
Dxy12393102161 小时前
Linux 压缩解压相关命令介绍
linux·运维·服务器
eleven_4u1 小时前
QPS如何计算,如何部署架构
java·linux·运维·jvm·中间件
云飞云共享云桌面2 小时前
非标自动化工厂研发部门怎么实现一台服务器带10个SolidWorks设计并发
运维·服务器·人工智能·3d·自动化·电脑·制造