温馨提示×

centos如何备份mysql

小樊
56
2026-09-29 21:40:02
栏目: 云计算

在 CentOS 上备份 MySQL,常见、可靠的做法有以下几种,从最常用到高级方案给你说明。


一、使用 mysqldump(最推荐,适合绝大多数场景)

1. 备份单个数据库

mysqldump -u root -p dbname > /backup/dbname_$(date +%F).sql

2. 备份所有数据库

mysqldump -u root -p --all-databases > /backup/all_db_$(date +%F).sql

3. 备份并压缩(节省空间)

mysqldump -u root -p dbname | gzip > /backup/dbname_$(date +%F).sql.gz

4. 只备份结构或只备份数据

# 只备份表结构
mysqldump -u root -p -d dbname > struct.sql

# 只备份数据
mysqldump -u root -p -t dbname > data.sql

二、自动定时备份(crontab)

示例:每天凌晨 2 点备份

crontab -e

添加:

0 2 * * * mysqldump -u root -p'password' dbname | gzip > /backup/dbname_$(date +\%F).sql.gz

⚠️ 注意:

  • 密码写在命令里不安全,建议用 ~/.my.cnf
  • % 在 crontab 中要转义

使用 .my.cnf(推荐)

vi ~/.my.cnf

内容:

[client]
user=root
password=你的密码

权限:

chmod 600 ~/.my.cnf

三、物理备份(适合大数据量)

1. 使用 mysqlbackup(企业版,不常用)

2. 使用 Percona XtraBackup(推荐)

适合 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

四、备份恢复示例

恢复 SQL 备份

mysql -u root -p dbname < dbname_2026-01-21.sql

恢复压缩备份

gunzip < dbname.sql.gz | mysql -u root -p dbname

五、备份建议(非常重要)

✅ 定期备份
✅ 异地/云存储备份
✅ 定期测试恢复
✅ 主从 + 备份双重保障


如果你是:

  • 小网站 / 单机 MySQL → mysqldump
  • 生产环境 / 大数据 → XtraBackup
  • Docker 中的 MySQL → 我也可以单独讲

告诉我你的 MySQL 版本和使用场景,我可以直接给你一套完整备份脚本。

0 踩