InnoDB .ibd 数据修复
连接数据库
mysql -h 127.0.0.1 -u root -p
#新建数据库
CREATE DATABASE seomuyun.com;
#进入新建的数据库
USE seomuyun.com;
#建与待修复表相同的表
CREATE TABLE seomuyun (
actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (actor_id),
KEY idx_actor_last_name (last_name)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
#将此表移出表空间
ALTER TABLE seomuyun.com.actor DISCARD TABLESPACE;
复制数据文件
cp /backup_directory/actor.ibd path/to/mariadb/data/seomuyun.com/
修改文件所有者和权限
chown -R mariadb:mariadb path/to/mariadb/data/seomuyun.com/actor.ibd
chmod -R 0660 path/to/mariadb/data/seomuyun.com/actor.ibd
重新将其导入表空间
ALTER TABLE seomuyun.com.actor IMPORT TABLESPACE;
如果一切正常,应该就可以对修复后的表进行查询操作了,将查询出的数据恢复到损坏的MySQL实例中即可。