《MySQL 定时备份实战:mysqldump + cron 的可靠组合》

举报
yd_256292196 发表于 2026/11/08 08:47:34 2026/11/08
【摘要】 数据库丢了比服务器宕机更可怕:服务可以重启,数据丢了就真的没了。给 MySQL 做定时备份并不复杂,mysqldump 加 cron 就能搭一套够用的方案。先写一条备份命令:mysqldump -u root -p --single-transaction --routines --triggers mydb > /backup/mydb_$(date +%F).sql。--single-t...

数据库丢了比服务器宕机更可怕:服务可以重启,数据丢了就真的没了。给 MySQL 做定时备份并不复杂,mysqldump 加 cron 就能搭一套够用的方案。


先写一条备份命令:mysqldump -u root -p --single-transaction --routines --triggers mydb > /backup/mydb_$(date +%F).sql。--single-transaction 让 InnoDB 表在不锁表的情况下拿到一致性快照,--routines 和 --triggers 把存储过程和触发器也带上,文件名带上日期方便按天区分。


密码不要写在命令行里,会留在 shell 历史和进程列表中。把账号密码写进 ~/.my.cnf,权限设为 600,命令里就不用再写 -p,cron 跑起来也更安全。


再用 cron 定时执行:每天凌晨 3 点跑一次,0 3 * * * /usr/local/bin/backup-mysql.sh。备份脚本里顺手做两件事:一是校验文件大小,非空才算成功;二是删除 7 天前的旧备份,只保留最近一周,find /backup -name "*.sql" -mtime +7 -delete。


备份做完不等于能恢复。每月至少做一次恢复演练:把备份文件导入一台测试库,确认能正常建表、数据行数对得上。只备份不验证,等于没备份。


这套组合成本几乎为零,却能挡住误删表、误操作和磁盘故障这些最常见的事故。先跑起来,再慢慢加异地同步和加密也不迟。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。