数据库备份是服务器运维最重要的核心操作。无论网站、小程序、后台系统,一旦误删数据、中毒、更新出错,唯一救命手段就是备份文件。
MariaDB 主流通用备份工具为 mysqldump,轻量、无需停机、兼容性极强,适合 99% 的中小型项目。本文适配 Ubuntu 26.04 + MariaDB 11.8 环境,包含:手动备份、单库备份、全量备份、定时自动备份、数据恢复、跨服务器迁移。
默认已安装 MariaDB 数据库,未安装可参考本站上篇教程:Ubuntu 26.04 安装配置 MariaDB 教程。
所有命令支持 Ubuntu / Debian 全系系统,命令通用无差别。
一、基础手动备份(常用)
1、备份单个数据库(最常用)
语法:备份指定库,生成 .sql 压缩备份文件
mysqldump -u用户名 -p 数据库名 > 备份文件名.sql
实战示例:
mysqldump -uwebuser -p db_test > db_test_20260710.sql
执行后输入数据库密码,即可在当前目录生成完整备份文件。
2、备份所有数据库(全量备份)
mysqldump -uwebuser -p --all-databases > all_db_backup.sql
3、备份仅表结构(无数据)
mysqldump -uwebuser -p -d db_test > db_test_struct.sql
二、免密码备份(解决定时备份输密码问题)
如果需要自动定时备份,必须配置免密认证,否则脚本无法自动执行。
1、编辑 MariaDB 配置文件
nano ~/.my.cnf
2、写入以下内容
[mysqldump]
user=webuser
password=你的数据库密码
default-character-set=utf8mb4
3、授权权限(必须)
chmod 600 ~/.my.cnf
此后所有 mysqldump 命令无需再加 -u -p,直接执行。
三、配置定时自动备份(生产必备)
1、创建备份存储目录
mkdir -p /data/backup/mariadb
2、编写自动备份脚本
nano /data/backup/mariadb/backup.sh
脚本内容:
#!/bin/bash
# 备份保存目录
BACKUP_DIR=/data/backup/mariadb
# 时间戳
DATE=$(date +%Y%m%d_%H%M%S)
# 备份指定数据库
mysqldump db_test > $BACKUP_DIR/db_test_$DATE.sql
# 删除7天前旧备份,防止占满磁盘
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
3、添加执行权限
chmod +x /data/backup/mariadb/backup.sh
4、测试手动执行
/data/backup/mariadb/backup.sh
5、配置 crontab 定时任务
crontab -e
添加(每日凌晨2点自动备份):
0 2 * * * /data/backup/mariadb/backup.sh
保存退出,自动备份生效。
四、MariaDB 数据恢复教程
备份的核心意义就是出错可回滚,下面是标准恢复命令。
1、恢复单个数据库
mysql -uwebuser -p db_test < db_test_20260710.sql
2、恢复全量数据库
mysql -uwebuser -p < all_db_backup.sql
3、免密恢复方式
mysql db_test < db_test_20260710.sql
五、跨服务器数据库迁移(实战用法)
无需下载文件,一行命令直接从旧服务器迁移到新服务器:
mysqldump -u旧用户 -p旧密码 db_test | mysql -h新IP -u新用户 -p新密码 db_test
六、备份最佳实践(生产建议)
- 数据量小:每日凌晨自动备份 + 保留7天循环删除
- 重要数据:本地备份 + 异地云存储双备份
- 禁止备份文件存放在系统盘,防止磁盘爆满
- 定期手动测试恢复,确保备份文件可用
七、常见问题
1、mysqldump: command not found 缺少客户端,执行 apt install mariadb-client 即可。
2、定时备份不执行 检查 .my.cnf 权限是否为 600、脚本是否可执行、crontab 是否正确。
3、恢复后中文乱码 备份与恢复统一使用 utf8mb4 编码,与上篇配置对应即可解决。
MariaDB 自动备份与手动恢复是运维必备技能,也是网站数据安全的底线。搭配上一篇 Ubuntu 26.04 MariaDB 安装配置 教程,即可完成从搭建、优化、安全加固到自动备份的完整生产环境闭环。建议所有线上项目全部开启定时备份,杜绝数据丢失风险。