如何通过ibd和frm文件恢复MySQL数据表
确保有备份文件
在开始之前,请确保有 frm 文件(包含表结构)和 ibd 文件(包含表数据)的备份。
创建数据库和表
在 MySQL 中创建一个新的数据库,然后在该数据库中创建与备份文件结构相同的表。
可以通过使用 mysqlfrm
工具从 frm 文件中提取创建表的 SQL 语句来完成,或者如果有表的原始创建语句,也可以直接使用。
解除表空间绑定
在新创建的表上执行 ALTER TABLE <表名> DISCARD TABLESPACE;
命令,这将删除新创建的空 ibd 文件。
复制 ibd 文件
将备份的 ibd 文件复制到新数据库的相应目录下。确保文件权限正确,通常需要将文件的所有权更改为 MySQL 用户。
绑定表空间
执行 ALTER TABLE <表名> IMPORT TABLESPACE;
命令,这将告诉 MySQL 使用复制的 ibd 文件而不是原来的文件。