温馨提示×

怎样备份debian mysql数据

小樊
42
2026-09-01 21:20:41
栏目: 云计算

在 Debian 系统上备份 MySQL(或 MariaDB)数据,常用且可靠的方法有以下几种。你可以根据需求选择。


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

1. 备份单个数据库

mysqldump -u root -p 数据库名 > backup_$(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. 仅结构或仅数据

mysqldump -u root -p --no-data 数据库名 > struct.sql
mysqldump -u root -p --no-create-info 数据库名 > data.sql

✅ 优点:简单、可跨版本恢复
❌ 缺点:数据量大时较慢


二、直接备份数据目录(物理备份)

适用于 停机或锁表 的情况。

1. 停止 MySQL

systemctl stop mysql

2. 备份目录

cp -a /var/lib/mysql /var/lib/mysql_backup_$(date +%F)

或 tar 打包:

tar czf mysql_backup.tar.gz /var/lib/mysql

3. 启动 MySQL

systemctl start mysql

⚠️ 注意:

  • 必须同 MySQL 版本
  • 不建议在线直接拷贝

三、使用 mysqlhotcopy(仅 MyISAM)

mysqlhotcopy 数据库名 /backup/

⚠️ 已过时,不推荐新系统使用


四、使用 Percona XtraBackup(推荐生产环境)

适合 大数据库、在线热备

1. 安装

apt install percona-xtrabackup-80

2. 备份

xtrabackup --backup --target-dir=/backup/mysql_$(date +%F)

3. 准备备份

xtrabackup --prepare --target-dir=/backup/mysql_日期

✅ 优点:快、支持增量
❌ 缺点:配置稍复杂


五、自动定时备份(cron)

编辑计划任务:

crontab -e

每天凌晨 2 点备份:

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

六、恢复数据示例

恢复 mysqldump 备份

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

或所有库:

mysql -u root -p < all_db.sql

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

  • MySQL 还是 MariaDB
  • 数据量大小
  • 是否生产环境

我可以帮你定制一套备份方案。

0 踩