记一次基于InnoDB引擎的数据库恢复

1.新建一个空的数据库,字符集为:utf8,排序规则为:utf8_general_ci,如下图所示:


至于为什么为utf8,我还真不太清楚,只是看有的文章上这么写,我也就这么做了,并且可行;我估计原因是原来数据库的编码就是utf8,所以要保持一致

2.新建表结构(一般都会知道要恢复的表的结构,所以直接创建已知的表结构即可)


切记,我红色标识的地方一定要加上,不然后面导入数据的时候会报错。

3.恢复表数据需要将.ibd文件和.frm文件解除绑定,执行如下语句

alter table 表名 discard tablespace;

4.停掉数据库服务,CMD下执行如下命令:

net stop mysql   -- 不一定是mysql,也可能是mysql其他版本,具体情况参考本机安装的服务

5.把该数据对应的.ibd文件放入数据库相应的目录下

6.启动数据库服务,CMD下执行如下命令:

net start mysql   -- 不一定是mysql,也可能是mysql其他版本,具体情况参考本机安装的服务

7.将新的.ibd文件和.frm文件关联起来,执行如下语句

alter table 表名 import tablespace;

8.查询表数据,发现已经全部恢复回来

若不知道表结构进行恢复,或者不理解该文章可参考https://www.2cto.com/database/201709/683413.html,写的不错。

猜你喜欢

转载自blog.csdn.net/jiang_zf/article/details/80206387