使用mysql-utilities解析.frm文件生成创建表SQL和使用.ibd文件恢复数据
yum -y install mysql-server mysql-utilities 安装mysql0utilities工具
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yztomu1S-1631147012499)(https://gitee.com/cy_hd/images/raw/master/blog/20210909080557.png)]
mysqlfrm --diagnostic ./ >createtb.sql 使用命令解析当前目录下所有的.frm文件成SQL语句到createtb.sql文件中
最后生成的文件是这样的
然后在你自己的数据库下执行这些文件就行,
你可以在你的db/your databasebname/ 下看到生成的对应的 tablename.frm 和 tablename.ibd文件,使用 alter table tablename DISCARD TABLESPACE 卸载掉对应表的.ibd文件,然后把你自己的文件copy过去,然后执行alter table tablename IMPORT TABLESPACE 这时有可能会报错Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.) 可以使用alter table tablename row_format=compact 或者在建表语句中加上ROW_FORMAT=COMPACT 然后再执行alter table tablename IMPORT TABLESPACE 执行ok
总结一下: