MariaDB 数据库备份与恢复完整教程(mysqldump 定时备份+数据还原)

数据库备份是服务器运维最重要的核心操作。无论网站、小程序、后台系统,一旦误删数据、中毒、更新出错,唯一救命手段就是备份文件。

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 安装配置 教程,即可完成从搭建、优化、安全加固到自动备份的完整生产环境闭环。建议所有线上项目全部开启定时备份,杜绝数据丢失风险。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress