温馨提示×

如何备份debian mysql数据

小樊
49
2026-09-20 03:30:02
栏目: 云计算

在 Debian 系统上备份 MySQL(或 MariaDB)数据,常见且可靠的方法有以下几种。下面从最常用进阶逐步说明。


一、使用 mysqldump(最推荐,通用)

1. 备份单个数据库

mysqldump -u root -p dbname > dbname_$(date +%F).sql

2. 备份所有数据库

mysqldump -u root -p --all-databases > all_db_$(date +%F).sql

3. 备份并压缩(节省空间)

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

4. 常用参数说明

  • --single-transaction:对 InnoDB 安全(不加锁)
  • --routines --events:备份存储过程和事件
  • --triggers:备份触发器

示例(生产推荐):

mysqldump -u root -p --single-transaction --routines --events --all-databases | gzip > backup.sql.gz

二、使用 mysqlbackup(仅 MySQL Enterprise)

如果你是 MySQL 企业版用户:

mysqlbackup --user=root --password backup

一般用户不需要这种方式。


三、直接复制数据目录(物理备份,不推荐新手)

⚠️ 仅适用于 停止 MySQL 服务使用 InnoDB 热备工具(如 Percona XtraBackup)

systemctl stop mysql
cp -a /var/lib/mysql /backup/mysql_data
systemctl start mysql

不推荐直接在运行时复制,容易数据不一致。


四、使用 Percona XtraBackup(大型数据库推荐)

适合 几 GB 以上 的数据库。

安装

apt install percona-xtrabackup-80

备份

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

恢复

xtrabackup --prepare --target-dir=/backup/mysql
xtrabackup --copy-back --target-dir=/backup/mysql

五、自动定时备份(cron)

编辑定时任务:

crontab -e

每天凌晨 3 点备份:

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

⚠️ 明文密码不安全,建议使用 .my.cnf

安全配置示例

# ~/.my.cnf
[client]
user=root
password=你的密码
chmod 600 ~/.my.cnf

六、备份后建议

  • 备份文件放到 另一台机器 / 云存储
  • 定期测试恢复
  • 保留 7~30 天历史备份

如果你愿意,我可以:

  • 给你一套 完整备份脚本
  • 按你的 MySQL 版本(5.7 / 8.0)定制
  • 教你 如何恢复备份

你可以告诉我你的 Debian 版本和 MySQL 版本。

0