在 Linux 上备份 MySQL 数据,常见、可靠的做法是使用 mysqldump 或 物理备份(如 Percona XtraBackup)。下面按常用程度和场景给你说明。
mysqldump -u root -p dbname > dbname_$(date +%F).sql
mysqldump -u root -p --all-databases > all_db_$(date +%F).sql
mysqldump -u root -p dbname | gzip > dbname_$(date +%F).sql.gz
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
dbname > dbname.sql
✅ --single-transaction:对 InnoDB 不锁表
✅ --routines/triggers/events:备份存储过程和事件
mysql -u root -p dbname < dbname.sql
gunzip < dbname.sql.gz | mysql -u root -p dbname
crontab -e
添加:
0 2 * * * mysqldump -u root -p'password' --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz
⚠️ 建议:
~/.my.cnf)适合:
xtrabackup --backup --target-dir=/backup/mysql
优点:
✅ 不阻塞业务
✅ 恢复快
❌ 配置稍复杂
✅ 定期 恢复演练
✅ 备份文件权限控制(600)
✅ 异地/云存储备份
✅ 主从架构可从容库备份
如果你愿意,可以告诉我:
我可以直接给你可用的备份脚本。