在 Debian 上备份 MySQL(或 MariaDB,Debian 默认常带 MariaDB)常见、可靠的做法如下,按“最推荐 → 进阶”说明。
mysqldump(适合绝大多数情况)mysqldump -u root -p 数据库名 > db_backup.sql
mysqldump -u root -p --all-databases > all_db_backup.sql
mysqldump -u root -p \
--single-transaction \
--routines \
--events \
--triggers \
--all-databases > all_db_backup.sql
说明:
--single-transaction:对 InnoDB 不锁表--routines/--events/--triggers:连同存储过程、事件、触发器mysqldump -u root -p --all-databases | gzip > backup_$(date +%F).sql.gz
~/.my.cnf[mysqldump]
user=root
password=你的密码
chmod 600 ~/.my.cnf
之后可直接:
mysqldump --all-databases > backup.sql
mariabackup / xtrabackup如果你是 大库(几十 GB+),建议用物理备份。
apt install mariadb-backup
mariabackup --backup --target-dir=/backup/mariadb
mariabackup --prepare --target-dir=/backup/mariadb
crontab -e
每天凌晨 3 点备份:
0 3 * * * mysqldump --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz
mysql -u root -p 数据库名 < db_backup.sql
或所有库:
mysql -u root -p < all_db_backup.sql
/backup 不在系统盘或定期同步到异地如果你愿意,可以告诉我:
我可以给你一套可直接用的备份脚本。