温馨提示×

linux mysql怎样备份数据

小樊
38
2026-10-15 11:41:55
栏目: 云计算

在 Linux 下备份 MySQL 数据,常用且可靠的方式是使用 mysqldump,此外还有物理备份和第三方工具。下面按常见场景给你说明。


一、使用 mysqldump 备份(最常用)

1. 备份单个数据库

mysqldump -u 用户名 -p 数据库名 > backup.sql

示例:

mysqldump -u root -p testdb > testdb_20260121.sql

2. 备份多个数据库

mysqldump -u root -p --databases db1 db2 > multi_db.sql

3. 备份所有数据库

mysqldump -u root -p --all-databases > all_db.sql

4. 压缩备份(节省空间)

mysqldump -u root -p testdb | gzip > testdb.sql.gz

5. 只备份结构(不含数据)

mysqldump -u root -p -d testdb > testdb_structure.sql

6. 只备份数据(不含结构)

mysqldump -u root -p -t testdb > testdb_data.sql

二、恢复数据

恢复普通 SQL 备份

mysql -u root -p 数据库名 < backup.sql

恢复压缩备份

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

恢复所有数据库

mysql -u root -p < all_db.sql

三、使用系统用户免密码备份(推荐)

在 /etc/my.cnf 或 ~/.my.cnf 中配置:

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

然后:

mysqldump testdb > testdb.sql

⚠️ 注意文件权限:

chmod 600 ~/.my.cnf

四、物理备份(适合大库)

1. 使用 mysqlbackup(企业版)

2. 使用 Percona XtraBackup(开源)

xtrabackup --backup --target-dir=/backup/mysql

特点:

  • 速度快
  • 支持热备
  • 适合几十 GB 以上数据库

五、自动定时备份(crontab)

编辑定时任务:

crontab -e

每天凌晨 2 点备份:

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

六、备份建议

  • 定期备份(每日 / 每周)
  • 备份文件异地存储
  • 定期测试恢复
  • 大表使用 --single-transaction(InnoDB)

如果你告诉我:

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

我可以帮你设计更合适的备份方案。

0 踩