引言:最近生产环境的数据库蹦了,并且没有回滚快照。现在只有.idb文件。网上的方法大部分都是基本8.0以下恢复。8.0以上恢复文件少之又少。看了许多篇文章都是有.frm文件恢复。但是在数据库8.0之后就已经没有.frm文件了,而且网上mysql8.0以上没有.frm的恢复,本人都没有成功过。通过多次试验在8.0以上,亲测用其他方法可行。只通过.idb文件恢复了数据。只适用于8.0版本的mysql。
恢复前环境准备,由于这次恢复涉及到需要使用到go语言,由于本人没有任何go语言经验,相信大家很多人也没有。我就写详细一点(大家不要看到需要go语言就退缩其实很简单)
如果大家实验可行的话麻烦大家点点赞 ,让更多的小伙伴知道!!!!
1.安装go语言环境(基于windows)
链接:https://pan.baidu/s/1T62W5Rz7Gve6bEzXLLZZgg
提取码:ib69
2.直接无脑下一步就行了(由于自己已经安装过了就没有贴图了,但是要记住安装的位置)安装好久cmd安装路径输入go
如果出现以下 就表明安装成功了
3.打开go的代码 这里楼主是用vscode打开的 代码已经如下 (解压即用不需要任何修改)
链接:https://pan.baidu/s/1RG5hg9mA3U0Le6fUKcAoeg
提取码:n9la
4.vscode打开代码文件
5.这里输入go插件 把他下载下来
6.这里基本就把环境安装好啦(现在就可以开始恢复数据了)
go run D:\go\go-test\go-ibd2schema\cmd\cmd.go D:\go\go-test\mysql\smart_travel\goods.ibd (如果使用这个命令爆的jar包下不下来,可以参考这篇文章A connection attempt failed because the connected party did not properly respond_a connection attempt failed because the connected -CSDN博客)
7.运行之后就可以看到(要恢复的表结构就已经明朗了,现在就只需要恢复数据啦)
8.现在就可以打开navicat把这个表结构导入进去(导进去就会发现 结构已经好了 但是没有数据)
大家别急现在就通过.ibd文件恢复数据了
9.然后再当前数据库执行这行命令 ALTER TABLE `goods` DISCARD TABLESPACE;(再执行这个命令)
再看到控制台没有问题之后 提示ok 就进入最关键的一步了。
10.需要找到刚才创建这个表的数据库文件夹(我现在也就是good这个文件夹) 这个路径大家要根据自己电脑或者虚拟机的位置找。网上有许多教程
11.如果是windows那就在这里就能找到对应数据库位置。虚拟机的话就建议大家百度一下应该就能找到 或者大家可以把他拿到windows来恢复。然后再上传到虚拟机上面去。(必须要保证上面那个命令跟下面的命令是同一个库)12.最后找到数据库文件夹之后,就进入数据库文件夹 把你要恢复的.idb文件放进去。(这一步就恢复数据了)
然后在刚才的地方执行下面这个命令 :ALTER TABLE `goods` IMPORT TABLESPACE;
然后神奇的一幕就发生了 你这张的数据就恢复啦!!!!
发布者:admin,转转请注明出处:http://www.yc00.com/web/1754761176a5198922.html
评论列表(0条)