在 CentOS 上备份 MySQL,常见、可靠的做法有以下几种,从最常用到高级方案给你说明。
mysqldump -u root -p dbname > /backup/dbname_$(date +%F).sql
mysqldump -u root -p --all-databases > /backup/all_db_$(date +%F).sql
mysqldump -u root -p dbname | gzip > /backup/dbname_$(date +%F).sql.gz
# 只备份表结构
mysqldump -u root -p -d dbname > struct.sql
# 只备份数据
mysqldump -u root -p -t dbname > data.sql
crontab -e
添加:
0 2 * * * mysqldump -u root -p'password' dbname | gzip > /backup/dbname_$(date +\%F).sql.gz
⚠️ 注意:
~/.my.cnf% 在 crontab 中要转义vi ~/.my.cnf
内容:
[client]
user=root
password=你的密码
权限:
chmod 600 ~/.my.cnf
适合 GB 级以上数据库
安装:
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-80
备份:
xtrabackup --backup --target-dir=/backup/mysql_full
mysql -u root -p dbname < dbname_2026-01-21.sql
gunzip < dbname.sql.gz | mysql -u root -p dbname
✅ 定期备份
✅ 异地/云存储备份
✅ 定期测试恢复
✅ 主从 + 备份双重保障
如果你是:
mysqldumpXtraBackup告诉我你的 MySQL 版本和使用场景,我可以直接给你一套完整备份脚本。