mysql导入frm和ibd文件还原数据

mysql导入frm和ibd文件还原数据

找到mysql安装目录下data目录所在地址

通过:show global variables like "%datadir%";找到地址

还原整个库的数据

1:创建一个新的数据库,数据库需要和frm和ibd的数据库表名和表结构必须一模一样

所以可以导入之前的数据库,我们只为了还原数据而已

导入原来的数据库结构之后,我们先创建以下mysql的存储过程

注意,里面需要改对应的数据库名称  mydataSo的位置

-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除

DROP PROCEDURE

IF

EXISTS discard_tablespace;-- 创建存储过程

CREATE PROCEDURE discard_tablespace () BEGIN-- 定义变量

DECLARE

s INT DEFAULT 0;

DECLARE

tableName VARCHAR ( 255 );-- 定义游标,并将sql结果集赋值到游标中

DECLARE

report CURSOR FOR SELECT

table_name

FROM

information_schema.TABLES

WHERE

table_schema = 'mydataSo' -- mydataSo是创建的那个数据库名称

AND table_type = 'base table';-- 声明当游标遍历完后将标志变量置成某个值

DECLARE

CONTINUE HANDLER FOR NOT FOUND

SET s = 1;-- 打开游标

OPEN report;-- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致

FETCH report INTO tableName;-- 当s不等于1,也就是未遍历完时,会一直循环

WHILE

s <> 1 DO-- 执行业务逻辑

SET @tableName = CONCAT( tableName );

SET @sqlStr = CONCAT( CONCAT( 'alter table ', @tableName ), ' discard tablespace' );

PREPARE stmt

FROM

@sqlStr;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;-- 将游标中的值再赋值给变量,供下次循环使用

FETCH report INTO tableName;-- 当s等于1时表明遍历以完成,退出循环

END WHILE;-- 关闭游标

CLOSE report;

END;

-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除

DROP PROCEDURE

IF

EXISTS import_tablespace;-- 创建存储过程

CREATE PROCEDURE import_tablespace () BEGIN-- 定义变量

DECLARE

s INT DEFAULT 0;

DECLARE

tableName VARCHAR ( 255 );-- 定义游标,并将sql结果集赋值到游标中

DECLARE

report CURSOR FOR SELECT

table_name

FROM

information_schema.TABLES

WHERE

table_schema = 'mydataSo' -- mydataSo是创建的那个数据库名称

AND table_type = 'base table';-- 声明当游标遍历完后将标志变量置成某个值

DECLARE

CONTINUE HANDLER FOR NOT FOUND

SET s = 1;-- 打开游标

OPEN report;-- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致

FETCH report INTO tableName;-- 当s不等于1,也就是未遍历完时,会一直循环

WHILE

s <> 1 DO-- 执行业务逻辑

SET @tableName = CONCAT( tableName );

SET @sqlStr = CONCAT( CONCAT( 'alter table ', @tableName ), ' IMPORT tablespace' );

PREPARE stmt

FROM

@sqlStr;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;-- 将游标中的值再赋值给变量,供下次循环使用

FETCH report INTO tableName;-- 当s等于1时表明遍历以完成,退出循环

END WHILE;-- 关闭游标

CLOSE report;

END;

创建成功之后,执行CALL discard_tablespace ();

执行完之后,data目录下新建产生的数据库目录里的ibd将会全部被删除,这一步也是为了我们导入ibd和frm的必要过程

执行成功之后,将mysql停止

停止之后,把我们需要导入的frm和ibd文件复制到data目录下新建产生的数据库目录里,(注意不要导入db.opt)提示需要覆盖的文件覆盖即可。

然后打开任务管理器再启动mysql

启动成功之后,执行CALL import_tablespace ();

到这一步即可将frm和ibd文件里的数据还原出来了。

还原某一张表的数据

和前面一样的步骤

1:创建一个新的数据库,该数据库里面创建需要还原数据的表,表名和表结构必须和frm和ibd的数据表一致

2:执行alter table tableName discard tablespace  tableName是需要还原数据的表名

3:任务管理器关闭mysql服务

4:复制frm和ibd的数据到data目录下新建产生的数据库目录里

5:启动mysql服务

6:执行alter table tableName IMPORT tablespace

数据还原成功

mysql导入frm和ibd文件还原数据相关教程

ibd 导入mysql_mysql导入frm和ibd文件还原数据相关推荐

  1. mysql怎么通过frm和ibd文件还原数据

    1.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.C ...

  2. csv导入mysql_mysql导入超大csv指南

    mysql导入超大csv指南 需求描述 手头下载了一个比较大(400Mb+)的语料数据,需要从里面提取出某两种语言的句子对,因为数据特别大,且csv并非标准以逗号分隔而是以tab分隔,尝试用Navic ...

  3. mysql利用frm和_mysql怎么通过frm和ibd文件还原数据

    创建已经丢失的表结构 先要安装 mysql-utilities. // RedHatyum -y install mysql-server mysql-utilities// Debianapt in ...

  4. 远程导入mysql_mysql导入sql文件命令和mysql远程登陆使用详解

    在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: 复制代码 代码如下: mysql> source   d ...

  5. frm文件导入mysql5.7_使用frm,ibd文件恢复数据库文件,mysql5.7.31,centos7.5,20200813...

    使用frm,ibd文件恢复数据库文件共有3步,安装数据库,恢复表结构,恢复表数据 我实操的软件版本,mysql5.7.31,centos7.5,20200813,数据库展开597MB 一,安装数据库 ...

  6. frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构

    废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...

  7. mysql innodb ibd_MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据

    记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...

  8. mysql ibd frm文件_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构

    废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...

  9. mysql frm ibd 创建表_MySQL数据库实现从.frm文件和.ibd文件恢复数据表方法

    MySQL中.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关. MySQL中.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_pe ...

  10. MySQL导入myi,myd,frm文件及浏览

    .frm,.myi,.myd是MySQL的文件类型 .frm是描述表结构的: .MYD包含表的数据文件: .MYI包含数据文件中任何索引的索引树,无论表中有没有索引,该文件都存在. phpMyAdmi ...

最新文章

  1. transfer function
  2. 32位与64位下各类型长度对比
  3. 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
  4. 趣学python3(46)--求素数
  5. proe输入数字时成双出现_天猫双11花呗可提额,支付宝输入几个数字,试试就知道...
  6. derhams to php,基于laravel belongsTo使用详解
  7. 使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分
  8. matlab求心率,心电图QRS波检测(计算心跳次数)
  9. jmeter5实现mysql数据库值提取--单sql提取
  10. 手把手带你入门 Docker Compose
  11. java lettuce配置多数据源_Spring Boot 2.x Redis多数据源配置(jedis,lettuce)
  12. 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
  13. 什么是代理服务器?【2022版指南】
  14. Linux运维工程师面试知识点汇总(二)
  15. 基础篇:6.5)形位公差-标注 Mark
  16. OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
  17. 踩坑前端框架 - iview DatePicker 时间选择年月日时分秒
  18. Android网络开发
  19. python基础语法及知识总结,总有你想知道的
  20. AMD推动高性能数据中心计算迈进新世代

热门文章

  1. 从事前端开发如何提升自我能力?
  2. 龙芯电脑编译安装mysql5.7详解
  3. mysql 少用in_mysql查询条件not in 和 in的区别及原因说明
  4. 阿里云盘来了,百度网盘VS阿里云盘,你更看好谁!
  5. Java 大文件分片上传
  6. 柠檬班python自动化百度云_带三开头的名字女孩名字大全
  7. 支付宝app支付,订单参数错误/PHP生成支付宝预支付订单/php 支付宝app支付
  8. 程序设计导引2.4——百练2801 填词
  9. linux audit 服务,linux 的 audit 服務
  10. 企业怎样优化用户体验?F5给出三条专业建议