1、停止原mysql数据库服务,备份原来的.ibd文件。(如果本身无法启动的mysql则无需此操作)
2、在目标MySQL数据库中创建一张新表,表结构与原表结构一致。确保新表的表结构与.ibd文件中的数据结构一致。--此步骤可以导入之前的备份sql文件
mysql -u username -p password db_name < file.sql |
3、使用下面命令删除新建表的表空间(即新表的.ibd 文件)。
ALTER TABLE tableName DISCARD TABLESPACE;
4、将备份好的.ibd文件复制到目标数据库数据文件夹替换旧的表ibd文件下,并修改.ibd文件权限。
chown mysql:mysql tableName.ibd (windows下无需此权限步骤)
5、使用下面命令重新导入表空间即可恢复数据(无需重启目标数据库服务)。
ALTER TABLE tableName IMPORT TABLESPACE;
6、检查表记录,确认正常