玩客云实现MySQL数据库异地备份

缘由

最近整理屋子的时候,无意间发现了去年买的一张玩客云的板子。当时只花了四十多就搞到了(不过现在貌似涨价了),792M小到可怜的内存,貌似什么事情也干不了,挂几个docker容器就会崩溃的样子

(但架不住便宜呀,一杯奶茶的价格,整了一套低功耗服务器,连电费都几乎可以忽略。)

而且这玩意的架构是armv7的,虽然受限不少,但我前几天用它跑了个 Alist,表现出乎意料:内存占用只有几十兆,下载速度也很快,用来做内网云盘完全没问题。

正好最近有个异地备份主站数据库的需求(博客和各种笔记软件的数据库都放在主站服务器里,突发意外就完蛋了……无论如何是要做好备份的),于是可以用这块板子搭个自动化的 MySQL 远程备份脚本。

开搞

(整体思路:用客云通过远程连接主动拉取主服务器的数据库,实现异地自动备份。后续可按需添加多个数据库、多个定时任务。)

首先,需要下载好MySQL和cron(实行定时任务的东西)。如果你和我一样装了宝塔面板,那 cron 就可以不装了,直接用宝塔的定时任务即可。

sudo apt update
sudo apt install mysql-client
sudo apt install cron

然后,你需要知道:

  • 需要备份数据库的主机地址
  • 数据库用户名、密码

1.给主站(待备份)的数据库添加玩客云ip权限

大多数 MySQL 默认不允许其它ip远程连接,否则你会看到这样的报错:

mysqldump: Got error: 1130: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this My8QL server when trying to connect

因此我们首先需要在主站的数据库(需要备份的数据库)的用户权限里加上玩客云所在的ip

如果你用的宝塔面板,直接添加即可。

对于没用宝塔面板的用户:

mysql -u root -p

登录后执行:

CREATE USER IF NOT EXISTS 'youruser'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON yourdb.* TO 'youruser'@'xxx.xxx.xxx.xxx';
FLUSH PRIVILEGES;
  • yourdb:目标数据库名
  • youruser:数据库用户名
  • yourpassword:数据库密码
  • xxx.xxx.xxx.xxx:玩客云的公网 IP

注意:如果没有固定公网 IP,可以将 IP 改成 % 表示接受任意来源,但不建议在生产环境使用。

2.配置文件

确保主服务器已开放 3306 端口(MySQL 默认端口)

(以下内容仅需在玩客云机器添加即可)

#!/bin/bash

# 配置区,请按照实际情况修改
REMOTE_HOST="yourdomain.com"
REMOTE_PORT=3306
DB_USER="youruser"
DB_PASS="yourpassword"
DB_NAME="yourdatabase"
BACKUP_DIR="/mysql_backups"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILENAME="$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz"

# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"

# 备份数据库
mysqldump -h "$REMOTE_HOST" -P "$REMOTE_PORT" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$FILENAME"

# 删除7天前的备份,防止硬盘炸了
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +7 -delete

然后,别忘了给脚本添加可执行权限哦

chmod +x /mysql_backup.sh

然后,可以直接运行看看效果。如果没出问题的话,应该会在/mysql_backups出现一个MySQL备份文件:

3. 定时任务

打开crontab

crontab -e

每天凌晨 3 点运行脚本(备份一次),并写入日志

0 3 * * * /mysql_backup.sh >> /mysql_backup.log 2>&1

评论

  1. Windows Edge
    20 小时前
    2025-6-19 0:45:01

    mysql-client是只有客户端吗?

    • 站长
      萧瑟
      Windows Edge
      20 小时前
      2025-6-19 0:49:48

      是的哦。如果仅仅是实现备份的话只用客户端即可(mysql-client已经包含了mysqldump数据库导出工具)。
      主要是玩客云内存太小带不动服务端的

  2. Windows Chrome
    1 天前
    2025-6-18 17:35:02

    玩客云所在ip不是动态的嘛?

    • 站长
      永恒末匕
      Windows Edge
      1 天前
      2025-6-18 17:46:25

      这玩意主要还是取决于家里的宽带吧,如果有静态公网ip,那它就是固定的
      玩客云本质上就是一台服务器主机,和动态ip没啥关系

  3. Macintosh Edge
    1 天前
    2025-6-18 16:22:53

    初中那会我也买过一个,挺好玩的,拆机烧固件,甚至能当电视盒子?但是不敢存重要数据在里面,是怕哪一天突然坏了。

    • 站长
      Yalois
      Windows Edge
      1 天前
      2025-6-18 17:51:23

      确实挺好玩的,而且挺便宜,性价比蛮高的

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯
 ̄﹃ ̄
(/ω\)
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
(´っω・`。)
( ,,´・ω・)ノ)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•)
(ㆆᴗㆆ)
有希酱最可爱啦!(素材来自bilibili@最上川下山)
from魔女的夜宴 (Mimosa整理)
Source: github.com/k4yt3x/flowerhd
整活by Mimosa233
颜文字
周防有希
魔女
小恐龙
花!
夸夸我!
上一篇