在 Debian 系统上备份 MySQL(或 MariaDB)数据,常用且可靠的方法有以下几种。你可以根据需求选择。
mysqldump 逻辑备份(最常用)mysqldump -u root -p 数据库名 > backup_$(date +%F).sql
mysqldump -u root -p --all-databases > all_db_$(date +%F).sql
mysqldump -u root -p --all-databases | gzip > all_db_$(date +%F).sql.gz
mysqldump -u root -p --no-data 数据库名 > struct.sql
mysqldump -u root -p --no-create-info 数据库名 > data.sql
✅ 优点:简单、可跨版本恢复
❌ 缺点:数据量大时较慢
适用于 停机或锁表 的情况。
systemctl stop mysql
cp -a /var/lib/mysql /var/lib/mysql_backup_$(date +%F)
或 tar 打包:
tar czf mysql_backup.tar.gz /var/lib/mysql
systemctl start mysql
⚠️ 注意:
mysqlhotcopy(仅 MyISAM)mysqlhotcopy 数据库名 /backup/
⚠️ 已过时,不推荐新系统使用
适合 大数据库、在线热备
apt install percona-xtrabackup-80
xtrabackup --backup --target-dir=/backup/mysql_$(date +%F)
xtrabackup --prepare --target-dir=/backup/mysql_日期
✅ 优点:快、支持增量
❌ 缺点:配置稍复杂
编辑计划任务:
crontab -e
每天凌晨 2 点备份:
0 2 * * * mysqldump -u root -p密码 --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz
mysql -u root -p 数据库名 < backup.sql
或所有库:
mysql -u root -p < all_db.sql
如果你愿意,可以告诉我:
我可以帮你定制一套备份方案。