MySQL服务启动提示window无法启动MySQL服务 错误1067:进程意外终止

服务器MySQL在操作的时候意外蹦了,然后所有表都访问不了了,关闭服务,然后重新启动,发现提示window无法启动MySQL服务 错误1067:进程意外终止,然后就开始各种百度补救措施,折腾了一天,还好找到了恢复的方法….

我的MySQL是5.6.21版本的
ENGINE为InnoDB
innodb_file_per_table为on(这个默认是on的,引擎独立表空间)
恢复的前提是要知道对应表的结构,因为恢复过程中要创建完全一样结构的表

解决方案:
找到mysql数据所在的源文件data文件夹,然后里边会有很多文件夹,这些文件夹都对应你的每个数据库名字,找到你要恢复的那个表所在的数据库文件夹,进去后会看到对应这个库中所有的表,每个表有两个文件,一个是.frm后缀的(存储表数据),一个是.ibd后缀的(存储表结构),另外如果表有索引的话可能表对应的文件是其他后缀结尾的,我恢复的表没有涉及到这类,所以这个解决方案好不好用待测。

1.把需要恢复的表的.ibd后缀的文件都复制出来

2.然后找一个可以正常运行的MySQL,创建一个新的库,然后创建相同结构的空表

3.执行ALTER TABLE 表名称 DISCARD TABLESPACE;

4.找到MySQL源文件的data文件夹,进入新创建的库文件夹中,你会发现执行完3后这个表只剩下了.frm文件,把待恢复的表的.ibd文件复制过来放进去

5.执行ALTER TABLE 表名称 IMPORT TABLESPACE;

6.通过select查询表,查看表是否可打开并且数据正常。

例子:
要恢复的表名为students

1.从崩掉的MySQL源文件data文件夹中找到students.ibd文件拷贝一份

2.找一个好用的MySQL数据库,创建一个新的数据库(当然一个已经存在的也行),在该数据库中新建students表,结构要和待恢复的表完全一样。

3.执行ALTER TABLE students DISCARD TABLESPACE;

4.把students.ibd文件拷贝到data文件夹下新创建的students表所在数据库表中和students.frm文件放在一块儿

5.执行ALTER TABLE students IMPORT TABLESPACE;

6.通过select * from students 查看之前的数据是否恢复并正常

我找的这种方法比较麻烦,基本上是看网上的解决方案各种本地试,目的是能恢复就行,没有深入的研究,有大牛的话欢迎各种拍砖。

终于耐下心写的第一篇博客 mark下 ……..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值