昨夜三更,朕正与周公下象棋,忽闻御前小太监尖叫:“陛下!服务器又当机啦!”吓得朕把帅子当卒子推了出去。朕披衣而起,只见那龙椅上的 MySQL 像喝醉的将军,横躺在内存里翻白眼。怎么办?凉拌!不,备份!
朕一拍龙椅扶手:“来人,把数据库装盒!”小太监一脸懵:“陛下,这玩意儿怎么装?”朕捋了捋并不存在的胡须:“DZ备份数据库,就是把朕的江山社稷——帖子、用户、表情包,全都塞进一个压缩包,顺丰包邮到云盘去。”
说干就干,朕掏出祖传的 phpMyAdmin,那界面比朕的后宫还花里胡哨。左点右点,选中论坛那库,像挑妃子一样认真。接着点击“导出”,格式选 SQL,勾上“添加 DROP TABLE”,这就好比先把旧房子炸了再盖新的,刺激!底下还有个“压缩”,朕选了 ZIP,毕竟快递费按体积算。
点下“执行”,只见进度条像乌龟爬长城,一卡一卡。朕泡了壶龙井,喝完三杯,它还在爬。朕怒而拍案:“是不是该给它发微信红包?”小太监提醒:“陛下,服务器带宽只有 2M。”朕长叹:“罢了,朕的江山社稷就值 2M。”
终于,咣当一声,一个后缀 .sql.zip 的文件蹦跶到下载栏,大小 88MB,吉利!朕给它赐名“朕的私房照.zip”,上传到七牛云,再加一层阿里云做冷宫,双保险。完事,朕回寝宫,对服务器撂下一句话:“爱卿,现在你可以放心地崩了。”
第二天早朝,朕把备份文件往硬盘里一扔,顺手又扔了一份到隔壁 NAS,那感觉就像把传国玉玺塞到枕头底下——踏实。自此,朕每晚三点,定时任务 cron 像更夫一样敲锣打鼓,自动 dz 备份数据库,朕则继续与周公下棋,再也不用担心半夜被小太监嚎醒。
教程时间:如何把数据库装进快递盒(DZ备份数据库超详细版)
一、准备工作
确认论坛根目录下有 data/backup 文件夹可写。
拿到数据库账号密码:一般在 config/config_global.php 里。
打开浏览器,进入论坛后台 → 站长 → 数据库 → 备份。
二、Discuz! 自带备份法
选择备份方式:Discuz! 提供“Discuz! 分卷备份”和“Shell 备份”。
虚拟主机用户选“分卷备份”;
VPS/独服用户可玩“Shell”,速度更快。
勾选数据表:
分卷大小:默认 2048 KB,2 M 小水管可改成 1024 KB,减少超时。
点击“提交”,系统会生成一串 .sql 文件,形如 backup_20250902_xxxx.sql。
下载:
三、phpMyAdmin 手动备份法
登录 phpMyAdmin,选中论坛数据库。
点击“导出” → 选择“自定义”。
格式:SQL;
勾选:
执行后下载 .sql.zip,重命名带日期,如 dz_20250902.sql.zip。
把文件丢进云盘,并记录 MD5,以便校验完整性。
四、命令行硬核备份(适合 VPS)
SSH 登录服务器。
执行:
mysqldump -u 用户名 -p 密码 数据库名 > /home/backup/dz_$(date +%Y%m%d).sql
压缩:
gzip /home/backup/dz_*.sql
定时任务:
crontab -e
添加:
0 3 * * * /usr/bin/mysqldump -u 用户名 -p密码 数据库名 | gzip > /home/backup/dz_$(date +%Y%m%d).sql.gz
将 /home/backup/ 目录同步到远程服务器或对象存储,例如:
rclone copy /home/backup/ remote:dz-backup
五、恢复演练(别等真崩才试)
在测试环境新建空库。
用 phpMyAdmin 或 mysql 命令导入备份文件。
打开论坛看看帖子、用户是否健在。
一切正常后,把演练流程写成文档,贴在龙椅后面。
至此,朕的江山社稷——哦不,数据库——便妥妥地装进快递盒,随时可寄可走。诸位爱卿,今晚就把备份跑起来,明早才能像朕一样,睡到日上三竿无人吵!