idb是innodb数据文件
frm是innodb表结构文件
在数据库的data目录下可以看到 data下的目录名就是数据库名,打开该数据库文件夹对于一个表有2个文件,一个以idb结尾,一个以frm结尾
直接复制粘贴是不识别的,提示找不到该表
解决方法:
下载 MySQL Utilities https://downloads.mysql.com/archives/utilities/
安装后找到安装目录,
打开命令行,输入
mysqlfrm.exe --server=root:123456@localhost --user=root --port=3009 D:\phpstudy_pro\Extensions\MySQL5.7.26\data\2\2.frm
经过漫长的等待,表结构出来了。
利用表结构创建表
执行 ALTER TABLE 表名 DISCARD TABLESPACE
停止mysql服务 将备份.idb文件复制到对应的数据量目录下
ALTER TABLE 表名 IMPORT TABLESPACE;
搞定
若step4 提示has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format,删除表,重新执行,新建的时候把row_format=COMPACT;