mysql文件损坏通过.ibd文件恢复数据

首先,介绍一下mysql的数据库文件。

.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关。

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

当innodb_file_per_table = 0使用共享表空间,所有数据库的表和索引数据存储在ibdata文件里。

  1. 备份损坏数据表的.ibd文件
  2. 删除表结构
    DROP TABLE tb_xxx;
  1. 重新创建表结构
    CREATE TABLE tb_xxx ....
  1. 以下命令会删除新表的.ibd文件
    ALTER TABLE tb_xxx DISCARD TABLESPACE;
  1. 拷贝备份的.ibd文件到数据文件夹
  2. 导入数据文件
    ALTER TABLE tb_xxx IMPORT TABLESPACE;

你可能感兴趣的:(mysql文件损坏通过.ibd文件恢复数据)