MySQL 数据恢复

首先针对修复过程中产生的问题进行再修复:

1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定,会直接删除 data 文件夹下的 expresspackage.ibd 文件,这时候数据库重启数据库会一直失败,所以在此期间不能重启,除非一直重启保持短暂连接进行操作,解决方法:

      1,1、再删除表结构文件,可以彻底删除这个表,就可以避免重启失败:drop table expresspackage;

  Tips:数据库文件损坏,很可能是某一张表有问题,一般就是操作表,可以先尝试备份删除这张表,看看MySQL是否能正常启动

      1.2、再关联一个表数据文件,可以完善表文件,就可以避免重启失败:alter table expresspackage import tablespace;

      1.3、Tips:如果复制进来的表数据文件在data文件夹下,但是没有关联成功,也会产生这个问题,需要先手动删除表数据文件

 

通过 ibd 文件进行数据恢复教程:

1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定

2、将需要恢复的 expresspackage.ibd 文件拷贝到 data 文件夹下

3、通过 alter table expresspackage import tablespace; 关联表结构文件

4、

4、完成,可通过 navicat 查看数据了

 

二、整个数据库恢复(需要数据库结构一致,否则可能丢失现有数据)

参考文档:https://www.cnblogs.com/sky-cheng/p/12214208.html

以新建数据库接收恢复数据为例

1、新建数据库服务MySQL2,此时是空数据库,执行初始化,然后停止服务

2、将损坏数据库的data文件夹下的数据库文件夹和ibdata1文件拷贝到MySQL2的data文件夹下,覆盖ibdata1文件

3、如果遇到无法copy的文件,选择跳过,说明此文件是损坏文件

4、重启MySQL2,DOS界面进入数据库,执行drop table 删除此前发现的损坏表,再重启MySQL2,能正常启动

5、MySQL2已接收MySQL中指定数据库的所有正常表

 

posted @ 2021-08-09 18:47  剑存古风  阅读(374)  评论(0)    收藏  举报