登录
首页 >  数据库 >  MySQL

mysql如何根据.frm、.ibd如何修复innodb数据表

来源:SegmentFault

时间:2023-01-29 08:17:26 472浏览 收藏

在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《mysql如何根据.frm、.ibd如何修复innodb数据表》,聊聊MySQL、数据库、后端,希望可以帮助到正在努力赚钱的你。

首先博主描述下自己的血泪史,我是在升级阿里云服务器的内核时,搞忘数据备份,导致mysql数据丢失,幸亏在当时升级之前复制了mysql的数据文件。

**两种引擎数据结构介绍:**

**innodb**数据表的源文件分两部分组成:**.frm   .ibd ;**

**mysiam**数据表的源文件分三部分组成:**.frm   .myd    .myi;**

> **inndob恢复方法:**
> 
> **1、**你首先要有 .frm,.ibd的文件。
> 
> **2、**在mysql中建一张表,要与你需要恢复的数据表,表结构需要完全一致。
> 
> **3、**先删除表数据,在mysql中运行: alter table `表名` discard tablespace ; 此时新建表的.ibd文件就被删除了。
> 
> **4、**关闭mysql。
> 
> **5、**将原数据的.ibd复制到对应的位置,mysql/data/db_name 数据库 文件夹 下。
> 
> **6、**加载 刚复制过来的ibd文件,在mysql表中运行: alter table `表名` import tablespace ; 此时.idb文件就被加载上了。
> 
> **7、**可以去查看数据表是否恢复了。
> 
> **8、**值得注意的是,如果你的数据表数据量比较大,那么很有可能在你加载ibd文件的过程中,mysql就死了。

> **mysiam恢复方法:** 
> 
> **1、**mysiam的恢复方法非常简单。
> 
> **2、**首先你需要有 .frm   .myd    .myi 三个文件,.frm(表结构)、.myd(数据)、.myi(表索引),将这三个文件复制到mysql/data/db_name 数据库 文件夹 下。
> 
> **3、**无需任何操作,打开你对应的数据库刷新,就可以看到数据表。

**参考链接:**

 **https://www.cnblogs.com/qinshuipo/p/10431575.html

**https://www.cnblogs.com/moyui/articles/12493953.html 

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>