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服务

在命令行窗口执行如下

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服务即可 

相关推荐

  1. 数据库MySQL备份恢复

    2024-04-07 10:28:02       47 阅读
  2. mysql数据库备份恢复

    2024-04-07 10:28:02       54 阅读
  3. 数据备份恢复

    2024-04-07 10:28:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 10:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 10:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 10:28:02       82 阅读
  4. Python语言-面向对象

    2024-04-07 10:28:02       91 阅读

热门阅读

  1. 【LeetCode热题100】【动态规划】杨辉三角

    2024-04-07 10:28:02       39 阅读
  2. python+ opencv(Mat)——笔记

    2024-04-07 10:28:02       33 阅读
  3. leetcode594-Longest Harmonious Subsequence

    2024-04-07 10:28:02       32 阅读
  4. redis bigKey问题

    2024-04-07 10:28:02       37 阅读
  5. Docker 中运行一个容器并查看其日志

    2024-04-07 10:28:02       38 阅读
  6. flinkCDC

    flinkCDC

    2024-04-07 10:28:02      30 阅读