mysql恢复ibd数据,为何频频报错?

起因是因为阿里云有挖矿警告,然后我就去看了一下cpu的运行状态45%正常情况下7%左右,因为第一次接触这种事情,baidu告诉我先重启一下,把进程结束掉,然后我听话的去重启了,重启完以后,我幸运的发现,bt直接进不去,然后我就跑去问了阿里云的客服,客服和我讲,有可能是黑客写了重启自启动的程序,所以我进不去了,建议我挂在云盘,重新装一下宝塔,好嘛,然后就挂载了云盘,但是不想在继续装bt,所以打算把文件上传到服务器,以后不去用bt这类,好嘛,然后就开始远程搭建环境,搭建完成之后发现了一个重要的问题,也就是mysql的数据没有备份,庆幸的找到了mysql自己生成的frm和ibd文件,

img

恩~下载!

下载之后就踏上了慢慢的恢复数据的征途,百度和csdn逛了个变,试了n种方法,都是恢复不了。首先我们看一下frm恢复文件的步骤,第一步创建一个同名表(之前的字段是4个,看看成不成功所以我删了一个,创建的是3个字段的表),

img

好的,存储文件已经生成了我刚创建的表的frm和ibd文件,接下来覆盖进去,

img

OK覆盖好了,接下来重启mysql,

img

好的,重启好了接下来让我们去navicat见证奇迹,好的,可以看到的是表根本就没有了

img

没有关系,因为我是知道表结构的,所以我们只要把ibd恢复了就好了,接下来让我们开始操作,首先,一样的我们要重新创建一个admin表(这次是四个字段的哦),可以看到数据库的存储文件frm和ibd已经生成了,然后我们要 执行ALTER TABLE admin DISCARD TABLESPACE;

img

好的~成功,下一步把我们的ibd文件复制进去

img

之后运行ALTER TABLE admin IMPORT TABLESPACE;

img

报错,百度了一下问题,后来让我运行alter table admin row_format=DYNAMIC; 好的不报那个错误了,然后我们重新进行上一步,

img

好的,报错。

之前在服务器远程觉得是因为5.7版本的数据和8.0的新装的mysql不兼容,所以换了本地的一个老版的navicat来重新操作上面的步骤,但是报的错还是一样的,感觉自己在茫茫的百度文章中找不到自己想要的答案。请各位兄弟姐妹帮我看一下,是我的操作步骤错了,还是这个操作步骤不适用于我的情况,实在是第一次经历,没有别的方法了。谢谢各位。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。