首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用Shell恢复MySQL .frm和.ibd文件

这是学习笔记第 1901篇文章 MySQL里面对于表默认配置是每个表都有独立文件.ibd和.frm文件对应,对于数据恢复来说,会提供很大便利。...其中.frm文件存储了表结构定义信息,而.ibd文件存储了真正数据。...如果某种特殊情况下,你只有.frm文件和.ibd文件,能不能单独恢复出来数据呢,答案是肯定,当然这个过程不是一个命令搞定,而是需要一些方法和技巧。...比如.frm文件,我们拿到这个二进制文件时候,其实我们也不知道里面到底有多少字段,怎么把DDL结构解析出来呢,这是第一个问题,而这个问题解决了之后,后续问题其实就迎刃而解,我们可以完全使用迁移表空间方式来处理...所以在恢复.frm和.ibd文件时候,难点在于如何解析得到建表DDL语句。 在这里我们要做个小把戏,需要预创建一个同名表,然后通过交换frm文件来变相得到DDL语句。

2.7K20

宝塔面板用frm和ibd文件恢复Mysql数据

作者自述: 写这篇文章我是非常不情愿,我现在是在写这篇文章,但是同时我也在恢复我服务器数据库数据,出这篇文章也是在我意料之外,由于我正在这件事类,我就出一版这样mysql.frm.ibd文件数据恢复教程...这里顺便介绍一下.frm文件与.ibd文件与.ibdata文件 .frm:与表相关元数据信息都存放在.frm文件中,主要是表结构定义信息,不论什么存储引擎,每一个表都会有一个以表名命名.frm文件...修改为独享表空间方法是在my.ini配置文件中添加/修改此条: Innodb_file_per_table=1 mysql存储所有数据文件都在data,而我们只有.frm与.ibd 这些在数据库里面可以看见...服务 net stop mysql 或者点击计算机--管理--服务--找到Mysql 然后关闭 3 复制备份.frm覆盖新建表.frm 4 开启mysql服务 net start mysql 5....最主要是这种样式要跟生前一样`meta_id` bigint,里面的长度小数点主键外键都可以不管 然后再关闭mysql服务 net stop mysql 然后再复制备份.frm覆盖新建表.frm

2.5K40

MySQL备份文件.ibd、.frm、.MYD、.MYI恢复教程

根据网友截图得知是他在恢复数据文件 .frm 时,报出异常。error: 1146: Table ‘xxx’ doesn’t exist ?...且这些文件,一般在你安装 MySQL 目录中 Data 目录中。 ? 如果你忘记了安装位置,或者忘记了配置 Data 目录在哪里,则可以根据下面的语句,找出数据文件存放目录。 ? ?...上面这个截图,就是我测试数据库对应数据文件存放目录。进入到我 /usr/local/var/mysql/ 目录后,可以看到我 xttblog 和 test 数据库目录。 ?...里面插入一些测试数据,包含建立索引等。然后,我们将 test_2019.ibd 和 test_2019.frm 两个文件复制到本地其他目录。...表创建出来之后,我们就可以到 /usr/local/var/mysql/test/ 替换 test_2019.ibd 和 test_2019.frm 两个文件了。 接着重启 MySQL 服务即可了。

2.8K20

从 Anemometer BUG 到 FRM 文件恢复

题目是Anemometer, 估计大部分不是MYSQLER不大清楚这是个什么东西,其实这是几年前通过WEB界面查询MYSQL 慢查询一个方法,安装上,通过一些脚本,就可以让每个MYSQL服务器慢查询显示出来...按下锅盖,起了瓢,最近MYSQL 测试服务器,因为整改,原来设置, 所有的文件都没有per file ,而是都在一个ibd 文件,整改后就出了问题,数据读不出来了,测试数据倒是不重要,但是表结构对于测试时重要...,开发人员希望能恢复MYSQL 表结构,根据原来经验,直接选择就是 mysql-utilties 工具集合里面的 frm文件修复,本来想很简单,现实很骨感,服务器上PYTHON 版本 3.6,...搞到最后,连YUM 都不OK 了,(因为YUM 使用PYTHON),所以最后结果是从新找了太干净机器,按照老方法把 mysql-utitiles 装上,然后恢复FRM 文件,本来还在担心这个工具集已经走到生命终点...后来一想,MYSQL 8.0 就没有 FRM 文件了,这个功能就不需要在担心了。

68520

利用frm文件和ibd文件恢复表数据

// 利用frm文件和ibd文件恢复表数据 // frm文件和ibd文件简介 在MySQL中,如果我们使用了默认存储引擎innodb创建一张表,那么在文件夹下面就会出现表名.frm和表名.ibd...,而frm文件是innodb表结构文件,mysiam存储引擎表中,frm是表结构,MYI文件是索引文件,而MYD文件是数据文件,从这里也可以看出,innodb存储引擎索引和数据是在一起,而Myisam...需要注意是,这个frm文件和ibd文件都是不能直接打开。...3.将aaa表字段数量升级成10个,然后重新拷贝frm文件,修改配置文件参数innodb_force_recovery=6,我们看看最终结果: mysql--root:(none) 12:04:...总结一下利用frm文件恢复表结构步骤: 1、首先创建一个同名表,然后启动实例 2、使用备份frm文件替代生成frm文件,重启实例 3、查看错误日志,从错误日志中获取到备份frm文件字段数量

7.4K20

恢复mysql数据结构(.frm)和数据(.ibd)

简介: 1.后缀名为.frm文件:这个文件主要是用来描述数据表结构和字段长度灯信息 2.后缀名为.ibd文件:这个文件主要储存是采用独立表储存模式时储存数据库数据信息和索引信息; 3...; 5.ibdata1文件:主要作用也是储存数据信息和索引信息 解决: 数据库存储引擎 1:如储存引擎采用是MyISAM,则生成数据文件为表名.frm、表名.MYD、表名MYI;...2:而储存引擎如果是innoDB,并且采用独立储存模式,生成文件是表名.frm、表名.ibd; 3:如果采用共存储模式,数据信息和索引信息都存储在ibdata1中; 本地恢复 1,服务器...mysql数据库(路径:/usr/local/mysql/var/mysql)(包含.frm,.ibd等)拷贝到本地data下面。...2,打开本地mysql,打开表可能会报1033。检查本地mysql版本和服务器mysql版本。 3,打开表—-报后缀名是ibd文件报了表不存在。将ibdata1文件考到本地。

1.4K20

技术分享 | 只有.frm和.ibd文件时如何批量恢复InnoDB

---- 背景 很多时候因为 MySQL 数据库不能启动而造成数据无法访问,但应用数据通常没有丢失,只是系统表空间等其它文件损坏了,或者遇到 MySQL bug。...mysqlfrm 从 .frm 文件里面找回建表语句。...// 分析一个 .frm 文件生成建表语句 mysqlfrm --diagnostic / var /lib/mysql/test/t1.frm // 分析一个目录下全部.frm文件生成建表语句...导入旧数据文件 将新建没有包括数据 .ibd 文件抛弃 root@username: /var/ lib/mysql/my_db # ll *.ibd|wc 124 1116 7941 root...然后把旧有数据 .ibd 文件拷贝到这个 my_db 目录下面,别忘了把属主改过来:chown mysql. *,再把这些数据文件 import 到数据库中。

1.7K10

修改 lower_case_table_names 导致 frm 文件删除失败

frm 文件名(不含 .frm 后缀),并根据 lower_case_table_names 值,把 frm 文件名转换为相应大小写形式,作为该 frm 文件对应表名。...遍历第 1 步得到表名,加上 .frm 后缀,得到 frm 文件名,然后根据 frm 文件是否存在执行不同逻辑。...Linux 系统文件名是区分大小写,test6 目录下只存在 Test.frm,用 test.frm 无法匹配 Test.frm 文件,也就是说,test.frm 文件不存在。...第二种删表逻辑,只会从 InnoDB 数据字典表中删除表元数据,然后删除表 ibd 文件,不包含删除 frm 文件操作,frm 文件也就不会被删了。 5. 为什么 ibd 文件能删除成功?...为什么 frm 文件会删除失败?小节介绍,我们可以看到,第一种删表逻辑,由于找不到表 frm 文件,不会触发 InnoDB 删表操作,也就不会删除 ibd 文件了。

64330

MySQL数据库使用Xtrabackup全备和全备还原

因此,此时数据文件仍处理不一致状态。“准备”主要作用正是通过回滚未提交事务及同步已经提交事务至数据文件也使得数据文件处于一致性状态。...读取备份文件夹中配置文件,然后innobackupex重做已提交事务,回滚未提交事务,之后数据就被写到了备份数据文件(innodb文件)中,并重建日志文件。...启动数据库 当数据恢复至DATADIR目录以后,还需要确保所有数据文件属主和属组均为正确用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件属主和属组。...备份所有的InnoDB表,复制所有关于表结构定义相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表相关文件,同时还会备份触发器和数据库配置信息相关文件。...服务器当前正在使用二进制日志文件及至备份这一刻为止二进制日志事件位置。

97410

mysql 日志文件_mysql日志文件在哪「建议收藏」

本篇文章将介绍mysql几种日志文件位置,如何能够找到。...mysql日志文件查询方法: 查找错误日志文件路径show variables like ‘log_error’; 在mysql数据库中,错误日志功能是默认开启。并且,错误日志无法被禁止。...默认情况下,错误日志存储在mysql数据库数据文件中。错误日志文件通常名称为hostname.err。其中,hostname表示服务器主机名。...默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中信息(未必是错误信息,如mysql如何启动InnoDB表空间文件、如何初始化自己存储引擎等等)、服务器运行过程中错误信息、...日志文件中记录着mysql数据库运行期间发生变化;也就是说用来记录mysql数据库客户端连接状况、SQL语句执行情况和错误信息等。

3.5K20

MySQL管理工具mysql-utilities-1.6.5

简介 mysql-utilities是mysql一个工具集合,它是基于----- python2 --- 实现,从官网查看到最新版本为mysql-utilities-1.6.5.tar.gz 编译安装...文件里面的表结构 mysqlfrm 有两种操作模式。...默认模式是再生个实例,使用--basedir选项或指定--server选项来连接到已经安装实例。这种过程不会改变原始.frm文件。...该模式也需要指定--port选项来给再生实例使用,该端口不能与现有的实例冲突。在读取.frm文件后,再生实例将被关闭,所有的临时文件将被删除。...byte-by-byte读取.frm文件 尽可能多恢复信息。该模式有更多局限性,不能校验字符集。 当使用默认模式无法读取文件或者该服务器上没有安装MySQL实例就使用诊断模式。

1.5K00

MySQL如何删除#sql开头临时表

前缀是MySQL 5.1中引入文件名安全编码。...3.2 创建新表方式删除 因为本例中没有存在.frm 和.ibd名称相同文件情况,因此采用创建一张与ibd表空间对应结构(字段名及索引)一致表,然后将frm文件拷贝为和ibd一致文件,再进行删除...方式,即权限和原文件权限一致,属主及group均为mysql,因此可以直接在数据库里读取删除,如果权限不对,必须先修改文件权限。...) 此时,135G文件就已经删掉了(其实另一个文件#sql-821_2.frm文件也一并删了) ?...注:删除这种100G表不建议直接删除,而是通过创建硬链接方式处理。 3.3 修改frm文件名与ibd文件名一致 上一步中删除ibd文件时,其中一个frm也自动删除了。

5.6K20

mysql文件导入sqlserver_mysql导入sql文件命令

大家好,又见面了,我是你们朋友全栈君。 问题来源 有的时候,在使用MySQL数据库建表时,可能不需要直接在mysql数据库中建表,而需要导入外部已有的数据库表文件,方便我们使用。...那么导入方法呢?这里介绍一个很普遍也很简单方法,步骤如下: 导入步骤 打开MySQL数据库,黑窗界面,如图: 这里输入密码 ‘root’,回车。。。...先确定你要建立数据库 名字,比如这里我 新建数据库 名字 叫“house”,如下图。(说明:如果sql文件内容中有创建数据库语句,或者想将表存放在已有的数据库,在这里就不需要再创建数据库。...如图: 导入已有的sql文件,这里我把 house.sql 放入D盘里, 然后,开始导入sql文件,输入“source sql文件路径”(注意文件路径,要将””全部换成“/”)。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

10.5K20

Mysql怎样删除以“#sql-”开头暂时表「建议收藏」

于是查看是哪个文件夹占用了这100G,最后发如今数据文件夹里发现 非常多类似#sql-*.ibd暂时文件和同文件名称#sql-*.frm。...就会在数据文件夹里存在一些中间表,这些中间表是以“#sql-”开头暂时表,在你数据文件夹里会看到 #sql-*.ibd和对应 #sql-*.frm ,假设 #sql-*.ibd 和 #sql-*...类似: mysql> drop table `#mysql50##sql-928_76f7`; 前缀”#mysql50#“是让Mysql忽略文件名称安全编码,这个前缀是在Mysql5.1引入 由于我数据文件夹里...不复制数据 2.把新创建暂时表.frm文件拷贝到欲删除数据文件夹里。...并改动和 ”#sql-*.ibd“一样文件名称 shell> cp test/tmp.frm #sql-928_76f7.frm 3.确认#sql-*.ibd 和 #sql-*.frm两个文件都存,

1.3K30

记一次MySQL数据库恢复

1 恢复步骤概要 备份frm、ibd文件 如果mysql版本发生变化,安装回原本mysql版本 创建和原本库名一致新库,字符集都要保持一样 通过frm获取到原先表结构,通过得到表结构创建一个和原先结构一样空表...使用“ALTER TABLE DISCARD TABLESPACE;”命令卸载掉表空间 将原先ibd拷贝到mysql仓库下 添加用户权限 “chown . .ibd”,如果是操作和mysql使用权限一致可以跳过.../dbsake frmdump [frm-file-path] #将所有读取结果输入到文件中 ./dbsake frmdump [frm-file-path] > 例如: ..../dbsake frmdump student.frm teacher.frm > school.txt 恢复表结构 文件中存放frm对应表结构sql,直接复制出来运行就行了,此时数据库中所有的结构都恢复了...show variables like 'datadir'; 进入对应文件夹中,会有一个和需要恢复数据库名完全一样文件夹,进入文件夹 将ibd文件复制过来 cp命令直接复制过来就行了 7)命令恢复表空间

2.3K20
领券