mysql frm ibd导入数据库_通过.frm和.ibd恢复mysql数据

.frm文件:保存了每个表的元数据,包括表结构的定义等;

.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。

1、安装相同版本的mysql;

找回表结构

2、找回表结构(若有表结构,直接导入表即可)

建立同名的表(InnoDB),不知道列数的话随意一个字段即可(如果字段个数不一致会报错,去日志文件中查看有列数重复这些步骤)

关闭mysql服务

用需要恢复的.frm文件覆盖新生成的.frm文件。

修改my.ini配置innodb_force_recovery = 6进入恢复模式(只读)。

启动mysql服务。

desc tble_name或者show create table tbl_name获取创建表结构语句。(直接查看表设计字段会导致数据库异常)

复制建表sql,删除表(不能直接删.frm和.ibd会导致新建时报已存在,如果直接删除文件,需要将frm文件拷贝回来,再drop表),执行sql创建表结构。(这个步骤要把innodb_force_recovery = 6注解掉或者回复为0,不然提示只读)。

这里会出现启动后没有表结构,这是需要查看mysql的日志文件

找到日志文件位置:

show variables like '%error%'

你可能感兴趣的:(mysql,frm,ibd导入数据库)