温馨提示×

怎样备份linux mysql

小樊
38
2026-10-03 18:27:56
栏目: 云计算

在 Linux 上备份 MySQL(或 MariaDB)常见、稳妥的做法如下,按使用频率 from 最常用到进阶说明。


一、最推荐:使用 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 \
  --single-transaction \
  --routines \
  --triggers \
  --events \
  dbname > dbname.sql

✅ 适合 InnoDB
✅ 不锁表


二、恢复 mysqldump 备份

恢复数据库

mysql -u root -p dbname < dbname.sql

恢复压缩备份

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

三、物理备份(更快,适合大库)

使用 mysqlbackup(企业版)

或使用 Percona XtraBackup(免费、常用)

安装(示例 CentOS)

yum install percona-xtrabackup

备份

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

恢复

xtrabackup --prepare --target-dir=/backup/mysql
xtrabackup --copy-back --target-dir=/backup/mysql

⚠️ 需停止 MySQL 服务


四、自动定时备份(crontab)

示例:每天凌晨 2 点备份

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

⚠️ 密码写脚本有安全风险,建议用 ~/.my.cnf


五、安全配置(推荐)

~/.my.cnf

[client]
user=root
password=yourpassword
chmod 600 ~/.my.cnf

六、备份策略建议

✅ 每日增量 / 全量
✅ 本地 + 异地(云存储)
✅ 定期恢复演练
✅ 大库用 XtraBackup


如果你告诉我:

  • MySQL 版本
  • 数据量大小
  • 是否允许短暂停机

我可以帮你定制一套备份方案 + 脚本。

0 踩