设为首页 收藏本站
查看: 474|回复: 0

[经验分享] MySQL数据库崩溃解决过程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-6 08:18:32 | 显示全部楼层 |阅读模式
  经常遇到这样的事情:莫名其妙关机,然后启动蓝屏,不能访问,最后决定重装系统。

  可惜这次的悲剧在于项目刚起步,暂且稳定,前段时间又一直忙于编码,对后台数据的备份没有太在意,导致数据库崩溃后只有上个月的备份数据。一直以为只要数据库装在d盘,c盘的覆盖不会有影响,结果恰恰是自己的不在意导致整个恢复过程及其艰难,耗时一天终于搞定,其中不乏有灰心丧气、准备放弃的想法。

  现把具体解决过程分享下吧:

  1、系统重装前,出于小心为上,工作人员备份了c盘数据到e盘,同时d、e两盘断点,c盘数据系统更新。

  2、重装完毕,安装数据库mysql,d盘中查找昨天的数据库文件,一直没找到,崩溃!最后只能找上个月的备份文件。恢复数据库成功后发现有些表打不开。(已经开始伤心了诶)

  3、初步判断可能安装的mysql有版本问题,决定安装新版本的mysql。但是安装不成功,后来经过摸索一番后发现是原来装的mysql没有卸载干净。

  4、3步完成卸载:删除安装目录下的文件、删除配置文件中的datadir变量目录中的文件、删除数据库数据存储目录中的文件。这三步可以根除mysql,判断是否清理成功的途径就是在系统服务中查看是否还有mysql服务。注意的是是否有这个服务!而不是是否启动!

  5、如果重新安装了mysql,安装后还是启动不了,并且彻底清除后再重新安装还是不行的话只能再分析原因,查找资料了。

  6、恢复上个月的数据库备份成功后你会发现还是有些表打不开,提示表不存在,但是在mysql视图窗口中却能看到相应的表。很奇怪,也很纠结对吧!!!同时发现打不开的表的引擎都是innoDB的,而可以打开的表的引擎则是MyISAMD的,由此判断可能是引擎的原因啦!

  7、网上的解决办法写的是mysql不支持innoDB,在php的配置文件中注释掉skip-innodb这行即可解决。查询服务器配置文件,发现已被注释,应该不是这方面的原因。但是无意中发现配置文件中的datadir变量指向的是c盘的某个目录,突然想到可能当初安装的时候数据库文件放到了c盘,还好刚开始有备份c盘文件。

  8、查找备份的c盘中的相应目录,突然找到了昨天的数据库文件。超开心哈哈

  9、把最新的数据库文件拷贝到新安装的数据库目录下发现还是不能打开innoDB的表,这是什么原因呢??查找资料,了解到innoDB跟MyISAM存储数据不一样,前缀的数据在上层目录中,而且可能是多个表数据存一个文件,后者每个表分三个文件存储,不同表间不相互影响。

  10、头脑一热,把昨天的数据库文件中的ibdata1文件直接覆盖了新安装的数据库中,启动发现数据库启动不了了!悲剧!可能是覆盖了原有的innoDB数据,导致新数据库崩溃。切记,千万不要覆盖!不然又杯具了

  11、卸载数据库后重新安装mysql,恢复数据库文件,还是打不开innoDB的表!怎么办?郁闷中。。。

  12、准备使用转成的sql把innoDB的表结构先建起来,然后手工输入丢失的数据,工作量不仅大,而且最重要的是我宝贵的数据都没了!欲哭无泪啊

  13、绝望中朋友突然给我说可以在她机器上本地测试下昨天的数据库备份,她安装的是多备份,即使导致数据库崩溃了,一键恢复就好了。想不到奇迹真的出现了!我的数据都出现了诶!我的网站又可以重新运行了。

  总结:备份,备份!只有在数据库崩溃的时候才知道它的价值!而且经过这次之后在这里提醒一句:备份数据时,千万一定要提前查看备份数据库是什么引擎,然后确定需要备份的数据库文件,不知道数据库存储位置的朋友看过来:在MySQL目录里的my.cnf配置文件中可找到。

  记得很久前看数据库方面的一本书时,前言第一句就是,“没有什么东西比数据库崩溃,更能让DBA在深夜中惊醒”。现在真的相信了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-40243-1-1.html 上篇帖子: Mysql的备份和还原 下篇帖子: mysql 级联更新删除问题 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表