温馨提示×

如何备份Debian MySQL

小樊
48
2026-07-15 19:53:50
栏目: 云计算

在 Debian 系统上备份 MySQL(或 MariaDB)数据库,常见且推荐的方法有以下几种。你可以根据需求选择 逻辑备份物理备份


一、使用 mysqldump(最常用,逻辑备份 ✅)

适合中小型数据库,简单、安全。

1️⃣ 备份单个数据库

mysqldump -u root -p 数据库名 > backup.sql

2️⃣ 备份多个数据库

mysqldump -u root -p --databases db1 db2 > backup.sql

3️⃣ 备份所有数据库

mysqldump -u root -p --all-databases > all_backup.sql

4️⃣ 常用优化参数(推荐)

mysqldump -u root -p \
  --single-transaction \
  --quick \
  --lock-tables=false \
  --all-databases > all_backup.sql

✅ 适用于 InnoDB
✅ 不会长时间锁表


二、备份到指定目录(建议)

mkdir -p /backup/mysql
mysqldump -u root -p --all-databases > /backup/mysql/mysql_$(date +%F).sql

三、自动压缩备份(节省空间)

mysqldump -u root -p --all-databases | gzip > /backup/mysql/mysql_$(date +%F).sql.gz

还原时:

gunzip < mysql_2026-01-21.sql.gz | mysql -u root -p

四、设置定时自动备份(cron)

1️⃣ 编辑定时任务

crontab -e

2️⃣ 每天凌晨 2 点备份

0 2 * * * mysqldump -u root -p'密码' --all-databases | gzip > /backup/mysql/mysql_$(date +\%F).sql.gz

⚠️ 注意:生产环境不建议直接在命令行写密码,可用以下方式更安全。


五、使用配置文件安全存储密码(推荐 ✅)

1️⃣ 创建配置文件

vim ~/.my.cnf

内容:

[client]
user=root
password=你的密码

2️⃣ 设置权限

chmod 600 ~/.my.cnf

3️⃣ 备份时无需输入密码

mysqldump --all-databases | gzip > /backup/mysql/backup.sql.gz

六、物理备份(大型数据库,生产环境)

方法 1:mysqlbackup(MySQL Enterprise)

❌ 需要企业版(不推荐普通用户)

方法 2:Percona XtraBackup(推荐 ✅)

适合 大库、InnoDB,支持热备份。

apt install percona-xtrabackup

备份:

xtrabackup --backup --target-dir=/backup/mysql/full

七、备份后验证(很重要)

mysql -u root -p
SHOW DATABASES;

或尝试在测试环境恢复。


八、总结推荐方案

场景 推荐方式
小中型数据库 mysqldump
需要定时备份 mysqldump + cron
大型数据库 XtraBackup
新手 mysqldump

如果你愿意,可以告诉我:

  • MySQL 版本
  • 数据量大小
  • 是否生产环境

我可以帮你定制一套 完整备份 + 自动清理 + 远程同步 方案。

0