ibd 导入mysql_mysql导入frm和ibd文件还原数据
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文件还原数据相关推荐
- mysql怎么通过frm和ibd文件还原数据
1.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.C ...
- csv导入mysql_mysql导入超大csv指南
mysql导入超大csv指南 需求描述 手头下载了一个比较大(400Mb+)的语料数据,需要从里面提取出某两种语言的句子对,因为数据特别大,且csv并非标准以逗号分隔而是以tab分隔,尝试用Navic ...
- mysql利用frm和_mysql怎么通过frm和ibd文件还原数据
创建已经丢失的表结构 先要安装 mysql-utilities. // RedHatyum -y install mysql-server mysql-utilities// Debianapt in ...
- 远程导入mysql_mysql导入sql文件命令和mysql远程登陆使用详解
在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: 复制代码 代码如下: mysql> source d ...
- frm文件导入mysql5.7_使用frm,ibd文件恢复数据库文件,mysql5.7.31,centos7.5,20200813...
使用frm,ibd文件恢复数据库文件共有3步,安装数据库,恢复表结构,恢复表数据 我实操的软件版本,mysql5.7.31,centos7.5,20200813,数据库展开597MB 一,安装数据库 ...
- frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...
- mysql innodb ibd_MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...
- mysql ibd frm文件_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...
- mysql frm ibd 创建表_MySQL数据库实现从.frm文件和.ibd文件恢复数据表方法
MySQL中.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关. MySQL中.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_pe ...
- MySQL导入myi,myd,frm文件及浏览
.frm,.myi,.myd是MySQL的文件类型 .frm是描述表结构的: .MYD包含表的数据文件: .MYI包含数据文件中任何索引的索引树,无论表中有没有索引,该文件都存在. phpMyAdmi ...
最新文章
- transfer function
- 32位与64位下各类型长度对比
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 趣学python3(46)--求素数
- proe输入数字时成双出现_天猫双11花呗可提额,支付宝输入几个数字,试试就知道...
- derhams to php,基于laravel belongsTo使用详解
- 使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分
- matlab求心率,心电图QRS波检测(计算心跳次数)
- jmeter5实现mysql数据库值提取--单sql提取
- 手把手带你入门 Docker Compose
- java lettuce配置多数据源_Spring Boot 2.x Redis多数据源配置(jedis,lettuce)
- 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
- 什么是代理服务器?【2022版指南】
- Linux运维工程师面试知识点汇总(二)
- 基础篇:6.5)形位公差-标注 Mark
- OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
- 踩坑前端框架 - iview DatePicker 时间选择年月日时分秒
- Android网络开发
- python基础语法及知识总结,总有你想知道的
- AMD推动高性能数据中心计算迈进新世代
热门文章
- 从事前端开发如何提升自我能力?
- 龙芯电脑编译安装mysql5.7详解
- mysql 少用in_mysql查询条件not in 和 in的区别及原因说明
- 阿里云盘来了,百度网盘VS阿里云盘,你更看好谁!
- Java 大文件分片上传
- 柠檬班python自动化百度云_带三开头的名字女孩名字大全
- 支付宝app支付,订单参数错误/PHP生成支付宝预支付订单/php 支付宝app支付
- 程序设计导引2.4——百练2801 填词
- linux audit 服务,linux 的 audit 服務
- 企业怎样优化用户体验?F5给出三条专业建议