温馨提示×

linux mysql怎么备份数据

小樊
37
2026-10-09 15:43:27
栏目: 云计算

在 Linux 下备份 MySQL 数据,常用且推荐的方式是使用 mysqldump,也可以使用 物理备份(如 xtrabackup) 或 二进制日志。下面按常见场景给你说明。


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

1️⃣ 备份单个数据库

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

2️⃣ 备份多个数据库

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

3️⃣ 备份所有数据库

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

4️⃣ 推荐加上的参数(更安全)

mysqldump -u root -p \
  --single-transaction \
  --routines \
  --triggers \
  --events \
  --all-databases > all_db.sql

说明:

  • --single-transaction:对 InnoDB 不锁表
  • --routines:存储过程
  • --triggers:触发器
  • --events:事件

二、压缩备份(节省空间)

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

恢复时:

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

三、定时自动备份(crontab)

编辑定时任务:

crontab -e

每天凌晨 2 点备份:

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

⚠️ 注意:

  • 脚本里写密码不安全,推荐用 ~/.my.cnf
[client]
user=root
password=你的密码

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

使用 Percona XtraBackup

适合:

  • 数据量大(几十 GB+)
  • 要求备份速度快
  • 热备份

示例:

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

五、恢复数据

恢复单个数据库

mysql -u root -p dbname < dbname.sql

恢复所有数据库

mysql -u root -p < all_db.sql

六、查看备份是否成功

ls -lh /backup/
mysql -e "SHOW DATABASES;"

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

  • MySQL 版本(5.7 / 8.0)
  • 数据量大小
  • 是否生产环境

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

0 踩