记一次基于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,写的不错。