一、项目中遇到的问题,数据备份的sql文件有问题导入不了,只有数据源文件.frm和.ibd文件
数据库版本:MySQL 5.7.26
数据库表引擎:innodb
二、具体操作步骤
源文件如下
1.新建数据库
2.数据表结构恢复
创建数据表 字段随意我以id为例
CREATE TABLE `mango_mid_orders` (id INT PRIMARY KEY) ENGINE=InnoDB;
关掉MYSQL服务我是用的集成环境,命令行自行百度
把准备好的.frm文件复制到MySQL5.7.26\data\(你的数据库)下替换掉下图中的
启动MYSQL服务
在命令行窗口执行如下
FLUSH TABLES;
SHOW CREATE TABLE `mango_mid_orders`;
执行完SHOW CREATE TABLE `mango_mid_orders`; 会报如下错误
找到MySQL的错误日志
SHOW VARIABLES LIKE 'log_error';
打开错误日志发现mango_mid_orders 有33个字段,删除表之后再新建表随意新增33个字段
DROP TABLE `user`;
CREATE TABLE `mango_mid_orders` (id INT PRIMARY KEY,
`1` varchar(255) DEFAULT NULL,
`2` varchar(255) DEFAULT NULL,
`3` varchar(255) DEFAULT NULL,
`4` varchar(255) DEFAULT NULL,
`5` varchar(255) DEFAULT NULL,
`6` varchar(255) DEFAULT NULL,
`7` varchar(255) DEFAULT NULL,
`8` varchar(255) DEFAULT NULL,
`9` varchar(255) DEFAULT NULL,
`10` varchar(255) DEFAULT NULL,
`11` varchar(255) DEFAULT NULL,
`12` varchar(255) DEFAULT NULL,
`13` varchar(255) DEFAULT NULL,
`14` varchar(255) DEFAULT NULL,
`15` varchar(255) DEFAULT NULL,
`16` varchar(255) DEFAULT NULL,
`17` varchar(255) DEFAULT NULL,
`18` varchar(255) DEFAULT NULL,
`19` varchar(255) DEFAULT NULL,
`20` varchar(255) DEFAULT NULL,
`22` varchar(255) DEFAULT NULL,
`23` varchar(255) DEFAULT NULL,
`24` varchar(255) DEFAULT NULL,
`25` varchar(255) DEFAULT NULL,
`26` varchar(255) DEFAULT NULL,
`27` varchar(255) DEFAULT NULL,
`28` varchar(255) DEFAULT NULL,
`29` varchar(255) DEFAULT NULL,
`30` varchar(255) DEFAULT NULL,
`31` varchar(255) DEFAULT NULL,
`32` varchar(255) DEFAULT NULL,
`33` varchar(255) DEFAULT NULL) ENGINE=InnoDB;
关闭MYSQL服务
把准备好的.frm文件复制到MySQL5.7.26\data\(你的数据库)替换掉原来的.frm文件
启动MYSQL服务
再次执行
FLUSH TABLES;
SHOW CREATE TABLE `mango_mid_orders`;
到此数据表结构就恢复了
利用ibd或MYD文件恢复数据
输入命令删除表结构
alter table mango_mid_orders DISCARD TABLESPACE;
将准备好的.idb文件拷贝到数据库目录下
数据恢复命令
ALTER TABLE uavtask IMPORT TABLESPACE;
注意字符集,排序规则 ,注意行格式改为COMPACT
重新打开数据表数据就已经恢复了
myd数据恢复
将下图的文件
复制到数据库目录下
重启MySQL服务即可