当前位置:   article > 正文

mysql 如果没有备份数据库(back.sql)文件利用.frm和.ibd恢复数据结构和数据的方法

mysql 如果没有备份数据库(back.sql)文件利用.frm和.ibd恢复数据结构和数据的方法

一、项目中遇到的问题,数据备份的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服务

在命令行窗口执行如下

  1. FLUSH TABLES;
  2. SHOW CREATE TABLE `mango_mid_orders`;

执行完SHOW CREATE TABLE `mango_mid_orders`; 会报如下错误

找到MySQL的错误日志

SHOW VARIABLES LIKE 'log_error';

打开错误日志发现mango_mid_orders 有33个字段,删除表之后再新建表随意新增33个字段

  1. DROP TABLE `user`;
  2. CREATE TABLE `mango_mid_orders` (id INT PRIMARY KEY,
  3. `1` varchar(255) DEFAULT NULL,
  4. `2` varchar(255) DEFAULT NULL,
  5. `3` varchar(255) DEFAULT NULL,
  6. `4` varchar(255) DEFAULT NULL,
  7. `5` varchar(255) DEFAULT NULL,
  8. `6` varchar(255) DEFAULT NULL,
  9. `7` varchar(255) DEFAULT NULL,
  10. `8` varchar(255) DEFAULT NULL,
  11. `9` varchar(255) DEFAULT NULL,
  12. `10` varchar(255) DEFAULT NULL,
  13. `11` varchar(255) DEFAULT NULL,
  14. `12` varchar(255) DEFAULT NULL,
  15. `13` varchar(255) DEFAULT NULL,
  16. `14` varchar(255) DEFAULT NULL,
  17. `15` varchar(255) DEFAULT NULL,
  18. `16` varchar(255) DEFAULT NULL,
  19. `17` varchar(255) DEFAULT NULL,
  20. `18` varchar(255) DEFAULT NULL,
  21. `19` varchar(255) DEFAULT NULL,
  22. `20` varchar(255) DEFAULT NULL,
  23. `22` varchar(255) DEFAULT NULL,
  24. `23` varchar(255) DEFAULT NULL,
  25. `24` varchar(255) DEFAULT NULL,
  26. `25` varchar(255) DEFAULT NULL,
  27. `26` varchar(255) DEFAULT NULL,
  28. `27` varchar(255) DEFAULT NULL,
  29. `28` varchar(255) DEFAULT NULL,
  30. `29` varchar(255) DEFAULT NULL,
  31. `30` varchar(255) DEFAULT NULL,
  32. `31` varchar(255) DEFAULT NULL,
  33. `32` varchar(255) DEFAULT NULL,
  34. `33` varchar(255) DEFAULT NULL) ENGINE=InnoDB;

关闭MYSQL服务

把准备好的.frm文件复制到MySQL5.7.26\data\(你的数据库)替换掉原来的.frm文件

启动MYSQL服务

再次执行

  1. FLUSH TABLES;
  2. SHOW CREATE TABLE `mango_mid_orders`;

到此数据表结构就恢复了

利用ibd或MYD文件恢复数据

 输入命令删除表结构

alter table mango_mid_orders DISCARD TABLESPACE; 

将准备好的.idb文件拷贝到数据库目录下 

数据恢复命令 

ALTER TABLE uavtask IMPORT TABLESPACE; 

注意字符集,排序规则 ,注意行格式改为COMPACT

重新打开数据表数据就已经恢复了

myd数据恢复 

将下图的文件

复制到数据库目录下 

重启MySQL服务即可 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/386418?site
推荐阅读
相关标签
  

闽ICP备14008679号