接着在控制台执行drop table songlyric;删除songlyric表,当然在执行删除songlyric命令之前,还需要将my.ini中的innodb_force_recovery = 6删除或者注释掉。接着执行下面命令重新创建表即可:
CREATE TABLE songlyric (
date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
lyricBefore text,
lyricAfter text,
isTraverse tinyint(1) DEFAULT NULL,
id int(8) NOT NULL AUTO_INCREMENT,
songUnique varchar(100) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY songUnique (songUnique)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
可以看到和之前通过navicat查看得到的创建表的sql语句相比,末尾多了ROW_FORMAT=COMPACT;
恢复表数据
恢复表数据需要首先将原先的.ibd文件与原先的.frm文件解除绑定,具体就是在控制台执行下面命令:
alter table songlyric discard tablespace; 接着执行net stop mysql停掉服务,将需要恢复的songlyric.ibd文件覆盖这个新建的wangyi数据库的songlyric表的物理文件songlyric.ibd,执行net start mysql开启服务。 将复制过来的songlyric.ibd文件与songlyric.frm文件发生联系。具体执行下面命令:
alter table songlyric import tablespace; 这时候通过navicat查看数据表,你会发现数据已经成功恢复啦啦啦。