Mysql之如何根據(jù).frm和.idb文件恢復(fù)表結(jié)構(gòu)
根據(jù).frm和.idb文件恢復(fù)表結(jié)構(gòu)
.frm和.idb文件是Mysql數(shù)據(jù)庫(kù)使用InnoDB數(shù)據(jù)庫(kù)引擎時(shí)產(chǎn)生的兩個(gè)文件。
- ~表名.frm文件存儲(chǔ)的相關(guān)表的表結(jié)構(gòu)、索引等元數(shù)據(jù)。
- ~表名.idb文件存儲(chǔ)的相關(guān)表中的數(shù)據(jù)記錄。
舉例:
admin.frm文件存儲(chǔ)的是admin的表結(jié)構(gòu)信息,例如id是int型,id是admin的主鍵等元數(shù)據(jù)信息。admin.idb文件存儲(chǔ)的是admin表中的記錄信息。例如admin表中(1,張三)一條記錄信息。
如何根據(jù).frm和.idb文件恢復(fù)表結(jié)構(gòu)呢
第一步:下載安裝MYSQL Utilities工具
官方下載地址:https://downloads.mysql.com/archives/utilities/

如果安裝64位工具出現(xiàn)報(bào)錯(cuò)時(shí)可以嘗試換成32位的工具。(親測(cè)有效)
第二步:使用.frm文件恢復(fù)表結(jié)構(gòu)
首先,使用Win + R快捷鍵打開DOS窗口,使用CD切換到.frm文件所在路徑。
例如:admin.frm文件在D:mysql-5.7.31-winx64/data/數(shù)據(jù)庫(kù)名文件中。
則需要 CD /d mysql-5.7.31-winx64/data/數(shù)據(jù)庫(kù)名文件夾中。


然后,使用mysqlfrm --diagnostic ./文件名.frm命令來(lái)導(dǎo)出建表的sql語(yǔ)句

使用建表sql語(yǔ)句在Mysql數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)的表。
第三步:使用.idb文件恢復(fù)表中的記錄
首先,將剛才創(chuàng)建的表的表空間卸載(刪除.idb文件),執(zhí)行完下面的這條命令之后將會(huì)自動(dòng)刪除該表的.idb文件。
在Mysql中執(zhí)行
alter table 表名 discard tablespace;
然后,將需要恢復(fù)的.idb文件拷貝到剛才創(chuàng)建的數(shù)據(jù)表的 表名.frm文件所在的文件夾中(一般是在數(shù)據(jù)安裝路徑\data\數(shù)據(jù)庫(kù)名 文件夾,在這個(gè)文件中可以看創(chuàng)建的表的.frm文件就對(duì)了)。
最后,使用下面的命令將復(fù)制的.idb文件導(dǎo)入到創(chuàng)建的表中。
在Mysql中執(zhí)行
alter table 表名 import tablespace;
按照上面的就可以恢復(fù)表結(jié)構(gòu)和數(shù)據(jù)了,完美收工嘍!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql中engine=innodb和engine=myisam的區(qū)別介紹
MyISAM類型不支持事務(wù)處理等高級(jí)處理,而InnoDB類型支持,本文為大家講解下mysql中engine=innodb和engine=myisam的區(qū)別,不懂的朋友可以學(xué)習(xí)下,希望對(duì)大家有所幫助2013-07-07
Navicat for MySQL(mysql圖形化管理工具)是什么?
這里就給大家介紹一個(gè)常用的MySQL數(shù)據(jù)庫(kù)管理工具:Navicat for MySQL,需要的朋友可以參考下2015-09-09
zabbix監(jiān)控MySQL主從狀態(tài)的方法詳解
這篇文章主要介紹了zabbix--監(jiān)控MySQL主從狀態(tài)的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06
21條MySQL優(yōu)化建議(經(jīng)驗(yàn)總結(jié))
這篇文章主要介紹了21條MySQL優(yōu)化建議,均來(lái)自個(gè)人的實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2014-07-07
MySQL數(shù)據(jù)庫(kù)中刪除重復(fù)記錄簡(jiǎn)單步驟
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)中刪除重復(fù)記錄的相關(guān)資料,在使用數(shù)據(jù)庫(kù)時(shí),出現(xiàn)重復(fù)數(shù)據(jù)是常有的情況,但有些情況是允許數(shù)據(jù)重復(fù)的,而有些情況是不允許的,當(dāng)出現(xiàn)不允許的情況,我們就需要對(duì)重復(fù)數(shù)據(jù)進(jìn)行刪除處理,需要的朋友可以參考下2023-08-08
詳細(xì)解讀分布式鎖原理及三種實(shí)現(xiàn)方式
這篇文章從三種基于不同形式的分布式鎖的實(shí)現(xiàn),數(shù)據(jù)庫(kù)、緩存和zookeeper,內(nèi)容比較詳細(xì),具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10

