网上一大堆环境条件都不同,现在列举我的情况
仅有ibd和frm
mysql 5.7
我知道表的结构,不知道的可以划走或者知道再看下面
首先创建数据库
然后创建表
CREATE TABLE `baidu` (
`title` varchar(255) DEFAULT NULL,
`link` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`work_last` datetime DEFAULT NULL,
`numbers` int DEFAULT NULL
)ENGINE=InnoDB ROW_FORMAT = Dynamic;
注意这个row_fomat
创建表以后删除空间,5.5新建表不会有ibd,5.7输入命令删除ibd
ALTER TABLE table_name DISCARD TABLESPACE;
上传原ibd
上传完成改权限
这样足够了
改完权限打命令
ALTER TABLE table_name IMPORT TABLESPACE;
到这一步数据已经恢复
下面说一下碰到的错误,网上查出来两种意思的
ERROR 1812 (HY000): Tablespace is missing for table
覆盖的文件没改权限
ERROR 1015 (HY000): Can't lock file (errno: 165 - Table is read only)
配置文件innodb_force_recovery
不要这条,可能有解决方案加这条
1030 - Got error -1 from storage engine
版本装5.7