在 Debian 系统上备份 MySQL(或 MariaDB) 数据,常见且推荐的方式有以下几种。下面从最常用到进阶依次说明,并给出示例。
mysqldump(最常用 ✅)适合中小型数据库,逻辑备份(SQL 文件)。
mysqldump -u root -p 数据库名 > /backup/db_$(date +%F).sql
mysqldump -u root -p --databases db1 db2 > /backup/multi_$(date +%F).sql
mysqldump -u root -p --all-databases > /backup/all_$(date +%F).sql
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
--all-databases > /backup/full_$(date +%F).sql
✅ 说明:
--single-transaction:对 InnoDB 不锁表--routines:存储过程--triggers:触发器--events:事件mysqldump -u root -p --all-databases | gzip > /backup/mysql_$(date +%F).sql.gz
sudo nano /usr/local/bin/backup_mysql.sh
内容示例:
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%F)
mysqldump -u root -p'密码' --all-databases | gzip > $BACKUP_DIR/mysql_$DATE.sql.gz
⚠️ 注意安全:建议用 .my.cnf 存放密码(见下方)
chmod +x /usr/local/bin/backup_mysql.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/backup_mysql.sh
.my.cnf 免密码备份(安全 ✅)nano ~/.my.cnf
内容:
[client]
user=root
password=你的密码
chmod 600 ~/.my.cnf
之后 mysqldump 不再需要 -p
mariabackup(MariaDB)mariabackup --backup --target-dir=/backup/mariadb
mariabackup --prepare --target-dir=/backup/mariadb
Percona XtraBackup(MySQL)适合 TB 级数据,热备份。
mysql -u root -p < /backup/mysql_2026-01-21.sql
gunzip < /backup/mysql_2026-01-21.sql.gz | mysql -u root -p
/backup/
/var/backups/mysql/
确保权限安全:
chmod 700 /backup
| 场景 | 推荐方式 |
|---|---|
| 普通网站 / 应用 | mysqldump + cron |
| 多库 / 自动备份 | mysqldump + .my.cnf |
| 大型数据库 | mariabackup / XtraBackup |
| 云服务器 | 本地 + 远程同步(rsync / rclone) |
如果你愿意,我可以帮你:
只要告诉我你的 Debian 版本 + MySQL 版本 即可。