温馨提示×

Ubuntu MySQL怎样备份

小樊
51
2026-10-10 00:00:47
栏目: 云计算

在 Ubuntu 上备份 MySQL,常见、实用的方式如下,按使用频率从简单到进阶给你说明。


一、最常用:mysqldump(逻辑备份)

1️⃣ 备份单个数据库

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

2️⃣ 备份所有数据库

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

3️⃣ 备份并压缩(推荐)

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

4️⃣ 只备份结构 / 只备份数据

# 只结构
mysqldump -u root -p --no-data dbname > struct.sql

# 只数据
mysqldump -u root -p --no-create-info dbname > data.sql

二、恢复备份

mysql -u root -p dbname < dbname.sql

如果是 .gz:

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

三、自动定时备份(crontab)

示例:每天凌晨 2 点备份

crontab -e

添加:

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

⚠️ 生产环境不建议明文写密码,可用:

~/.my.cnf
[client]
user=root
password=你的密码

然后:

chmod 600 ~/.my.cnf

四、物理备份(大库推荐)

使用 mysqlbackup(企业版)或 Percona XtraBackup

适合:

  • 数据库很大(几十 GB+)
  • 需要热备份(不停机)
# Percona 示例
xtrabackup --backup --target-dir=/backup/mysql

五、Ubuntu 系统级方式(不推荐主用)

systemctl stop mysql
cp -r /var/lib/mysql /backup/mysql
systemctl start mysql

✅ 简单但必须停服,不适合生产


六、备份建议(最佳实践)

  • ✅ 每天 mysqldump
  • ✅ 保留 7~30 天
  • ✅ 备份文件放别的磁盘 / 云存储
  • ✅ 定期测试恢复

如果你愿意,可以告诉我:

  • MySQL 版本
  • 数据量大小
  • 是否生产环境

我可以帮你写一套完整备份脚本 + 自动清理策略。

0 踩