MySQL 修改frm文件_mysql 之 frm+ibd文件还原data
此方法只适合innodb_file_per_table = 1
当误删除ibdata 该怎么办? 如下步骤即可恢复:
1、准备工作
1)准备一台纯洁的mysql环境【从启动到现在没有使用过INNODB的表结构的mysql环境】(当然也可以不用纯洁的,但是一定要保证表id 小于后续要恢复的表id);
2)备份frm、ibd文件;
2、通过frm恢复表结构
1)在测试库里新建任意一表,表结构随意,表名必须为:要恢复数据的表名【即为frm前缀名】
例如:CREATE TABLE five_monitor (id int(11) NOT NULL ) ENGINE=InnoDB ;
2)关闭mysql
3)用需要恢复的frm文件直接替换测试库刚新建的frm文件;
4)在配置文件里添加innodb_force_recovery = 6,然后启动;
5)show create table five_monitor;即能看到你需要的表结构信息了;
6)然后去掉innodb_force_recovery = 6 设置,重启mysql为下一步做准备;
3、通过ibd恢复表数据
1)查看表的space id( http://haildb.sourcearchive.com/ ... 0fil_8h_source.html 00118有说明)
a: hexdump -C five_monitor.ibd |head -n 3 |tail -n 1|awk '{print $6$7}‘
b: 通过以上结果到mysql里面去转成10进制:select conv('67c0',16,10);
说明space id为:26560
2)新建innodb表补充ibdata里面的table id
如果想看到ibd里面的数据,我们必须让space id 与刚启动的mysql ibdata里面的记录的表id一致;
新建一个表innodb,ibdata里面的表id就会+1,而刚才已经新建过表了,所以id已经+1了
故我们还需要新建26560-1(刚才新建的)-1(要恢复的表)=26558个表
for i in `seq 0 26557`; do mysql --user=××× ××××× -e "CREATE TABLE iinser$i (id bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id)) ENGINE=innodb "; done
3)导入要恢复的表
a:在另外一个测试库里按照第2步导出的表结构新建表;
b:alter table five_monitor discard tablespace;
c:cp 要恢复的ibd 到刚建的表的目录里,并修改mysql权限
d:alter table five_monitor import tablespace;
4)在配置文件里添加innodb_force_recovery = 6,然后启动;
这样你就能看到你想要的数据了。当然一定要通过dump 或者select * from into outfile把data导出;
MySQL 修改frm文件_mysql 之 frm+ibd文件还原data相关推荐
- mysql frm 恢复_mysql 从 frm 文件恢复 table 表结构的3种方法
mysql 正常运行的时候,查看 table 的结构并不是困难的事. 但是有时 mysql 发生故障,这种方法便不再可行. 当遇到故障,通常使用新的 mysql 实例来恢复当前的数据. 建表是非常重要 ...
- mysql ibd文件还原_MySQL单表ibd文件恢复方法详解
前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行 ...
- mysql索引 物理文件_MySQL体系结构之物理文件
一.MySQL日志文件 mysql日志文件及功能: 日志文件 功能 错误日志 记录启动.停止.运行过程中mysqld时出现的问题 通用日志 记录建立客户端连接和执行的语句 二进制日志 记录更改数据的所 ...
- mysql innodb 文件_MySQL与InnoDB相关文件
原标题:MySQL与InnoDB相关文件 上期回顾 <InnoDB存储引擎> 概要 本章将会分析构成MySQL数据库和InnoDB存储引擎的各种类型文件,这些文件有如下几种: 参数文件:主 ...
- mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法
本文实例讲述了MySQL修改my.cnf配置不生效的解决方法.分享给大家供大家参考,具体如下: 一.问题: 修改了 my.cnf 配置文件后,却不生效,这是怎么回事? 二.原因: 我们注意到,这里只说 ...
- mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能
MySQL修改表结构添加删除修改字段 创建数据库CREATE DATABASE database_name 创建表CREATE TABLE `user` ( `id` int(11) unsigned ...
- mysql修改数据列_MySQL数据库修改一列内容
匿名用户 1级 2018-07-05 回答 下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加 ...
- mysql修改数据库历史_MySQL之操作数据库
二.操作数据库 操作数据库-->操作数据库中的表-->操作数据库中表的数据 注:所有语句都要用;结尾. 1.操作数据库 例:创建数据库westos并使用. 注:以后所有命令带[]表示可选, ...
- mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题
mysql在通过导入sql文件可能会出现下面二个问题: 1.如果sql文件过大,会出现"MySQL server has gone away"问题; - 2.如果sql文件数据有中 ...
- mysql修改数据库名字_mysql 数据库修改名字
通过information_schema信息修改rename database的目的 mysql 没有rename database 命令,只能变相修改表到目标库里的表来实现: 拼接reanme ta ...
最新文章
- 共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三
- c#结合emgucv进行人脸检测_人脸识别与测温结合在办公场景有哪些应用?
- 【学习笔记】2019-Learning_UVOS_Through_Visual_Attention
- 【URAL - 1114 】Boxes (dp,组合数学)
- 苹果概念手机_吊打华为苹果!马云概念手机终于问世?
- JSP小项目,会员管理系统之实现登录功能
- 解决sql脚本文件太大无法打开的问题
- 项目组成和开发步骤——VB
- 常微分方程的解析解(方法归纳)以及基于Python的二阶微分方程边值问题的数值算例实现
- 一些代码美化的实用网站
- IMS+金蝶K3搭建简易版本供应商协同管理平台(SRM)
- 2013-C++第15周项目参考解答链接集
- CSS3——渐变(线性渐变、径向渐变、重复性渐变)
- Most of the disks failed
- 百度AI——人脸识别案例
- 主域名跳转到带www的域名方法,以及对seo有什么影响?
- leecode [保持城市天际线]代码实现
- 用好商品说话、为消费者服务、为全行业赋能:值得买科技618战报发布
- intouch制作历史趋势公用弹窗
- 【2021最新版】RabbitMQ面试题总结(32道题含答案解析)
热门文章
- Android跳转到手机自启动管理页面
- 忍者安全渗透系统(NINJITSU OS V3)的安装详细过程,亲测新旧vm版本都可安装,附带下载来源
- AI代替30%班主任工作 尚德机构督学机器人上线
- 狐妖小红娘服务器维护,3月7游戏更新公告 狐妖小红娘版本上线
- 卡贴机变无锁教程_有锁机变无锁教程 教你轻松设置去掉卡贴有锁机变无锁完美4G...
- android背光,Android背光亮度调节
- 索尼手机的摄像功能怎么样?
- Oracle AutoVue 安装与配置说明
- 怎么设置html表格的最小宽度,HTML表格的宽度怎么设置
- realsense moveit生成octomap错误:‘Client [/move_group] wants topic /camera/color/image_raw to have dataty