MySQL 备份与恢复入门 一条命令导出一条命令导回

举报
yd_286960584 发表于 2026/11/09 10:30:00 2026/11/09
【摘要】 网站的文件坏了还能重新上传,数据库里的数据没了就是真没了。MySQL 自带的 mysqldump 工具一条命令就能把整个库导出成一个文件,恢复时一条命令再导回去。本文讲清导出、定时备份和恢复的完整做法,以及恢复前必须先确认的三件事,动手之前先把后悔药备好。为什么先讲数据库备份?因为一个网站真正值钱的东西几乎都在数据库里:文章、用户、订单、配置,文件丢了可以重装重传,这些数据丢了没有任何地方能...

网站的文件坏了还能重新上传,数据库里的数据没了就是真没了。MySQL 自带的 mysqldump 工具一条命令就能把整个库导出成一个文件,恢复时一条命令再导回去。本文讲清导出、定时备份和恢复的完整做法,以及恢复前必须先确认的三件事,动手之前先把后悔药备好。

为什么先讲数据库备份?因为一个网站真正值钱的东西几乎都在数据库里:文章、用户、订单、配置,文件丢了可以重装重传,这些数据丢了没有任何地方能找回来。更现实的是动手场景:升级程序、批量改数据、装新插件之前,万一操作翻车,有没有一份刚导出的数据库备份,决定了你是十分钟原样恢复,还是对着空库发呆。备份不是出事之后的补救,是动手之前的规矩。
导出用 MySQL 自带的 mysqldump。在命令行执行 mysqldump -u root -p 数据库名 > backup.sql,回车后输入密码,整个库就被导成一个叫 backup.sql 的文本文件,里面是一条条建表和插入数据的语句,打开能直接看懂。想一次备份所有库就把数据库名换成 --all-databases。养成两个小习惯:文件名带上日期,比如 backup-20261217.sql,过几天回头看一清二楚;导出完用 ls 看一眼文件大小,是 0 或者小得离谱,多半是中途报错了,别当成功品存着。
光靠手动想起来才备一次,迟早会漏。稳妥做法是配一条定时任务,每天凌晨自动导出一份,按日期命名,保留最近七份,老的自动删掉,前面那篇 Cron 讲的就是干这个的。还有一条更要紧:备份文件不能只躺在同一台服务器上,服务器硬盘坏了、机器被攻击了,备份会跟着一起没。至少定期把最近一份拷回自己电脑,或者传到对象存储里,两地分开存,才算真的有备份。
恢复同样是一条命令。先在 MySQL 里建好一个同名的空库,然后执行 mysql -u root -p 数据库名 < backup.sql,文件里的数据就原样回来了。注意方向别搞反:大于号是导出、小于号是导入,写反了轻则报错,重则把备份文件冲掉。恢复还有个前置动作经常被忽略:导回之前,先把当前库的现状再导出一份存好,万一拿错了备份版本,还有机会退回到刚才的状态,不至于越救越糟。
最后三条确认事项,动手前逐条过。第一,导回是覆盖式操作,库名一定逐字核对,导错库等于把好端端的另一个库冲掉。第二,备份文件里装着你的全部数据,包括用户的密码哈希,不要随手发人、不要放在网站目录里让人能下载走。第三,导出成功不等于备份可用,找个测试库真恢复一次走通全程,确认这份文件能把数据完整带回来;从来没验过的备份,关键时刻和没有备份区别不大。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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