MySQL 备份与恢复入门 一条命令导出一条命令导回
网站的文件坏了还能重新上传,数据库里的数据没了就是真没了。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,文件里的数据就原样回来了。注意方向别搞反:大于号是导出、小于号是导入,写反了轻则报错,重则把备份文件冲掉。恢复还有个前置动作经常被忽略:导回之前,先把当前库的现状再导出一份存好,万一拿错了备份版本,还有机会退回到刚才的状态,不至于越救越糟。
最后三条确认事项,动手前逐条过。第一,导回是覆盖式操作,库名一定逐字核对,导错库等于把好端端的另一个库冲掉。第二,备份文件里装着你的全部数据,包括用户的密码哈希,不要随手发人、不要放在网站目录里让人能下载走。第三,导出成功不等于备份可用,找个测试库真恢复一次走通全程,确认这份文件能把数据完整带回来;从来没验过的备份,关键时刻和没有备份区别不大。
- 点赞
- 收藏
- 关注作者
评论(0)