温馨提示×

怎样备份debian mysql

小樊
44
2026-10-13 16:54:06
栏目: 云计算

在 Debian 上备份 MySQL(或 MariaDB,Debian 默认常带 MariaDB)常见、可靠的做法如下,按“最推荐 → 进阶”说明。


一、最推荐:mysqldump(适合绝大多数情况)

1. 备份单个数据库

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

2. 备份所有数据库

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

3. 推荐加的参数(更安全)

mysqldump -u root -p \
  --single-transaction \
  --routines \
  --events \
  --triggers \
  --all-databases > all_db_backup.sql

说明:

  • --single-transaction:对 InnoDB 不锁表
  • --routines/--events/--triggers:连同存储过程、事件、触发器

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

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

三、使用配置文件避免明文密码(推荐)

1. 创建 ~/.my.cnf

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

2. 修改权限

chmod 600 ~/.my.cnf

之后可直接:

mysqldump --all-databases > backup.sql

四、物理备份(大数据量):mariabackup / xtrabackup

如果你是 大库(几十 GB+),建议用物理备份。

MariaDB(Debian 常见)

apt install mariadb-backup
mariabackup --backup --target-dir=/backup/mariadb
mariabackup --prepare --target-dir=/backup/mariadb

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

crontab -e

每天凌晨 3 点备份:

0 3 * * * mysqldump --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz

六、恢复数据库

恢复 mysqldump 备份

mysql -u root -p 数据库名 < db_backup.sql

或所有库:

mysql -u root -p < all_db_backup.sql

七、备份注意事项

  • 确保 /backup 不在系统盘或定期同步到异地
  • 定期 测试恢复
  • 生产环境建议 主从 + 备份 双保险

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

  • 用的是 MySQL 还是 MariaDB
  • 数据量大小
  • 是否 Docker / 云服务器

我可以给你一套可直接用的备份脚本。

0 踩