在 Debian 系统上备份 MySQL(或 MariaDB)数据,常见且推荐的方式有以下几种。下面从最常用到进阶给你详细说明,并附示例命令。
mysqldump 备份(最常用 ✅)mysqldump -u root -p 数据库名 > backup_$(date +%F).sql
示例:
mysqldump -u root -p mydb > mydb_2026-01-21.sql
mysqldump -u root -p --databases db1 db2 > multi_backup.sql
mysqldump -u root -p --all-databases > all_db_backup.sql
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
--all-databases > full_backup.sql
✅ 参数说明:
--single-transaction:InnoDB 不锁表--routines:存储过程--triggers:触发器--events:事件mysqldump -u root -p --all-databases | gzip > backup_$(date +%F).sql.gz
crontab -e
0 2 * * * mysqldump -u root -p'密码' --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz
⚠️ 注意:命令行写密码不安全,推荐用配置文件(见下方)。
vim ~/.my.cnf
内容:
[client]
user=root
password=你的密码
chmod 600 ~/.my.cnf
mysqldump --all-databases | gzip > backup.sql.gz
systemctl stop mysql
cp -a /var/lib/mysql /backup/mysql_data
systemctl start mysql
⚠️ 不推荐在线复制,可能损坏数据。
mariabackup / xtrabackup(推荐)apt install mariadb-backup
mariabackup --backup --target-dir=/backup/mysql_full
mariabackup --prepare --target-dir=/backup/mysql_full
mysql -u root -p < backup.sql
gunzip < backup.sql.gz | mysql -u root -p
✅ 定期备份
✅ 本地 + 远程存储(rsync / 云)
✅ 定期测试恢复
✅ 大库使用物理备份
✅ 不要明文写密码
如果你愿意,我可以:
只要告诉我你的 MySQL 版本和运行环境即可。