mysql InnoDB idata1文件损坏,单个恢复表格数据

服务器异常断电,导致mysql某一个table .idb文件损坏,在idata1页存在异常损坏;

在开启mysql服务一开启就之后据自动关闭,提示异常服务终端异常;

 

mysql数据维护人员一定要有定时备份数据,利用mysql worhbench 的management中的data export 导出数据,可以分结构与数据分开导出,好习惯要持续;

之后自己再学习怎么做到自动备份数据!!!

解决步骤:

服务器重新安装mysql,将之前的安装卸载干净;

现在开始学习怎么一个一个表格来恢复数据:(建议在自己电脑localhost数据库中操作

1、先将服务器路径下的data拷贝到自己本机硬盘中,命名old_data;

2、随便新建一个schema;新建table;table命名为你想要恢复的table名,随便新建一列(不管列名内容);断开mysql服务,

3、将old_table下的table.ifm拷贝覆盖现有的.ifm,再连接mysql服务;执行select语句;报错:该表table不存在;原因是你的table列名数不够;

4、进入.err文件查看,clt+F查询table名,告知你table原本有多少列;

5、得知多少列数之后,删除表格,重新建表,修改列表个数,重复第三步,你会得到table表结构;

6、执行语句;alter table table名 diascrd tablespace;

7、你会发现在data路径下schema文件中出现了table名.ibd文件被删除;

8、将old_table下的table.idb文件复制粘贴到现有文件下;执行语句alter table table名 import tablespace;出现警示,不过没有关系的;

9;再次去执行select语句;就可以看到old_table的数据还原在现有文件中;

10、导出现有的数据,再导入数据到服务器上去;

虽然过程新辛苦,一个庞大的数据库一个一个table导入会比较麻烦;还是比较笨的方法的;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值