首页
学习
活动
专区
圈层
工具
发布

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

这是学习笔记的第 1901篇文章 MySQL里面对于表的默认的配置是每个表都有独立的文件.ibd和.frm文件对应,对于数据恢复来说,会提供很大的便利。...其中.frm文件存储了表结构定义信息,而.ibd文件存储了真正的数据。...如果某种特殊情况下,你只有.frm文件和.ibd文件,能不能单独恢复出来数据呢,答案是肯定的,当然这个过程不是一个命令搞定,而是需要一些方法和技巧。...所以在恢复.frm和.ibd文件的时候,难点在于如何解析得到建表的DDL语句。 在这里我们要做个小把戏,需要预创建一个同名的表,然后通过交换frm文件来变相得到DDL语句。...}/${RECOVER_TABLE_NAME}.ibd #mv ${MYSQL_DATA_DIR}/${MYSQL_RECOVER_DB}/${RECOVER_TABLE_NAME}.frm ${MYSQL_DATA_DIR

3.1K20

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

作者自述: 写这篇文章我是非常不情愿的,我现在是在写这篇文章,但是同时我也在恢复我服务器数据库的数据,出这篇文章也是在我的意料之外,由于我正在这件事类,我就出一版这样的mysql.frm.ibd文件数据恢复教程...这里顺便介绍一下.frm文件与.ibd文件与.ibdata文件 .frm:与表相关的元数据信息都存放在.frm文件中,主要是表结构的定义信息,不论什么存储引擎,每一个表都会有一个以表名命名的.frm文件....ibd和.ibdata:两者都是专属于InnoDB存储引擎的数据库文件。...修改为独享表空间的方法是在my.ini配置文件中添加/修改此条: Innodb_file_per_table=1 mysql存储的所有数据文件都在data,而我们只有.frm与.ibd 这些在数据库里面可以看见...使用命令提示符走这段建表语句就行了 注:一定要要有ROW_FORMAT=COMPACT;不然后面添加了.ibd文件依然打不开 好,我们有了表结构后,我们现在需要恢复表数据 分离表空间 使当前.ibd的数据文件和

3.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    只有frm和ibd文件如何恢复mysql数据库

    MySQL的数据文件分为两种类型:.frm文件和.ibd文件。.frm文件存储表结构的元数据,而.ibd文件存储实际的数据和索引。...(2)将.frm文件和.ibd文件放置在正确的位置:将原始数据库的.frm文件和.ibd文件复制到新MySQL实例的数据目录下,即数据库目录下的相应子目录。...你可以将这些语句复制到新的MySQL实例中执行,以重建表结构。 (4)恢复.ibd文件:由于.ibd文件包含实际的数据和索引,你需要确保它们正确地对应到.frm文件中定义的表。...在MySQL中,.ibd文件与表之间的对应关系是通过内部数据字典来管理的。....ibd文件替换为新的文件,然后执行: ALTER TABLE your_table_name IMPORT TABLESPACE; (5)修复和恢复数据:一旦你成功将表结构和.ibd文件关联起来,你可以尝试访问数据并执行数据恢复操作

    59110

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

    问题: 在linux环境从新安装呢lnmp,mysql没有导出。...简介: 1.后缀名为.frm的文件:这个文件主要是用来描述数据表结构和字段长度灯信息 2.后缀名为.ibd的文件:这个文件主要储存的是采用独立表储存模式时储存数据库的数据信息和索引信息; 3....frm、表名.ibd; 3:如果采用共存储模式的,数据信息和索引信息都存储在ibdata1中; 本地恢复 1,服务器mysql的数据库(路径:/usr/local/mysql/var/mysql...)(包含.frm,.ibd等)拷贝到本地的data下面。...2,打开本地mysql,打开表可能会报1033。检查本地mysql版本和服务器mysql版本。 3,打开表—-报后缀名是ibd的文件报了表不存在。将ibdata1文件考到本地。

    1.8K20

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

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...根据网友的截图得知是他在恢复数据文件 .frm 时,报出的异常。error: 1146: Table ‘xxx’ doesn’t exist ?...进入到我的 /usr/local/var/mysql/ 目录后,可以看到我的 xttblog 和 test 数据库目录。 ? 根据列表文件中的后缀名都可以判断出,我使用的是 InnoDB 存储引擎。...然后,我们将 test_2019.ibd 和 test_2019.frm 两个文件复制到本地的其他目录。 要恢复 test_2019 这张表,我们先要用 SQL 创建出这种表。 ?...表创建出来之后,我们就可以到 /usr/local/var/mysql/test/ 替换 test_2019.ibd 和 test_2019.frm 两个文件了。 接着重启 MySQL 服务即可了。

    3.8K20

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

    Test.frm 从上面的结果可以看到,db.opt、Test.ibd 都已经删除,只剩下 Test.frm。...db.opt -rw-r----- 1 mysql mysql ... test_table_1.frm -rw-r----- 1 mysql mysql ... test_table_1.ibd server...为什么 frm 文件会删除失败? 我们先来回顾一下 frm 文件删除失败的场景: lower_case_table_names = 0 时,创建了数据库和表(表名包含大小写字母)。...第 2 步,执行第一种删表逻辑:以第 1 步中根据 frm 文件名得到的表名执行删表操作,由 InnoDB 和 server 层共同完成,InnoDB 负责删除表的元数据和 ibd 文件,server...第二种删表逻辑,只会从 InnoDB 数据字典表中删除表的元数据,然后删除表的 ibd 文件,不包含删除 frm 文件的操作,frm 文件也就不会被删了。 5. 为什么 ibd 文件能删除成功?

    93430

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

    处理方法 3.1 同时存在.frm 和.ibd名称相同的文件 如果 #sql-*.ibd 和 #sql-*.frm两个文件都存在数据目录里的话,可以直接drop table。...3.2 创建新表方式删除 因为本例中没有存在.frm 和.ibd名称相同的文件的情况,因此采用创建一张与ibd表空间对应的结构(字段名及索引)一致的表,然后将frm文件拷贝为和ibd一致的文件,再进行删除...的方式,即权限和原文件权限一致,属主及group均为mysql,因此可以直接在数据库里读取删除,如果权限不对,必须先修改文件权限。...3.3 修改frm文件名与ibd文件名一致 上一步中删除ibd文件时,其中一个frm也自动删除了。为此,尝试通过修改frm文件名和ibd文件名一致的方式处理。...如下: a) 修改frm文件名与ibd文件名一致 [root@db4 testdb]# mv \#sql-a846_2.frm \#sql-ib1570-121877015.frm b) 删除表 root

    6.6K20

    MySQL查询表显示doesnt exist错误?不要惊慌,让我带你揭开解决之谜!

    为了模拟该问题,我分为两个维度分进行模拟,一种是丢失frm文件,另外一种是将当前实例的frm、ibd文件全部废弃,导入从备份文件恢复后的frm、ibd文件,具体操作如下: 表修复: REPAIR TABLE.../vss bash-4.2# ls audit_log.frm audit_log.ibd db.opt #docker部署的mysql [root@sql-audit-20230526 db1]...frm、ibd文件 环境准备 新实例:vss_tmp库,audit_log表,9条数据 故障实例:vss库,数据文件都已清除,报doesn't exist 操作步骤和上面的几乎是一样的 1)拷贝前先执行...audit_log.ibd db.opt bash-4.2# cp /var/lib/mysql/vss_tmp/audit_log.frm ./ bash...-4.2# cp /var/lib/mysql/vss_tmp/audit_log.ibd ./ bash-4.2# ls audit_log.frm audit_log.ibd db.opt #

    50610

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

    于是查看是哪个文件夹占用了这100G,最后发如今数据文件夹里发现 非常多类似#sql-*.ibd暂时文件和同文件名称的#sql-*.frm。...就会在数据文件夹里存在一些中间表,这些中间表是以“#sql-”开头的暂时表,在你的数据文件夹里会看到 #sql-*.ibd和对应的 #sql-*.frm ,假设 #sql-*.ibd 和 #sql-*...#sql-*.ibd 和 #sql-*.frm两个文件都存,所以直接drop就能够了。...而没有#sql-*.frm的话,就须要特殊处理 1.在还有一数据schema里创建一个和欲删除表一样的表结构(包含同样的列和索引) mysql> create database test mysql...并改动和 ”#sql-*.ibd“一样的文件名称 shell> cp test/tmp.frm #sql-928_76f7.frm 3.确认#sql-*.ibd 和 #sql-*.frm两个文件都存,

    1.6K30

    MySQL离线ibd数据恢复工具 - ibd2sql

    遇到MySQL数据丢失的窘境?想象一下这个场景: MySQL没有备份 MySQL是单点部署 MySQL突然宕机无法启动面对业务数据恢复的压力,是不是感觉天要塌了?别急着递交辞呈!...ibd2sql工具可能是您的救命稻草。这是一款能将离线ibd文件转换为SQL语句的神器,可以帮助恢复宝贵的数据。...让我们直接看看如何使用:安装wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zipunzip main.zipcd ibd2sql-main2...使用python3 main.py /data/mysql/mysql8/data/test/t1.ibd --sql --ddl --complete-insert就是这么简单!...注意:此工具仅支持MySQL 8.0版本。有了ibd2sql,就多了一张保命符。下次遇到类似情况,别忘了这个强大的工具。它可能会帮您化险为夷,保住饭碗!

    68100
    领券