Mysql之如何根據(jù).frm和.idb文件恢復表結構
根據(jù).frm和.idb文件恢復表結構
.frm和.idb文件是Mysql數(shù)據(jù)庫使用InnoDB數(shù)據(jù)庫引擎時產(chǎn)生的兩個文件。
- ~表名.frm文件存儲的相關表的表結構、索引等元數(shù)據(jù)。
- ~表名.idb文件存儲的相關表中的數(shù)據(jù)記錄。
舉例:
admin.frm
文件存儲的是admin的表結構信息,例如id是int型,id是admin的主鍵等元數(shù)據(jù)信息。admin.idb
文件存儲的是admin表中的記錄信息。例如admin表中(1,張三)一條記錄信息。
如何根據(jù).frm和.idb文件恢復表結構呢
第一步:下載安裝MYSQL Utilities工具
官方下載地址:https://downloads.mysql.com/archives/utilities/
如果安裝64位工具出現(xiàn)報錯時可以嘗試換成32位的工具。(親測有效)
第二步:使用.frm文件恢復表結構
首先,使用Win + R
快捷鍵打開DOS窗口,使用CD切換到.frm文件所在路徑。
例如:admin.frm文件在D:mysql-5.7.31-winx64/data/數(shù)據(jù)庫名文件中。
則需要 CD /d mysql-5.7.31-winx64/data/數(shù)據(jù)庫名文件夾中。
然后,使用mysqlfrm --diagnostic ./文件名.frm
命令來導出建表的sql語句
使用建表sql語句在Mysql數(shù)據(jù)庫中創(chuàng)建相應的表。
第三步:使用.idb文件恢復表中的記錄
首先,將剛才創(chuàng)建的表的表空間卸載(刪除.idb文件),執(zhí)行完下面的這條命令之后將會自動刪除該表的.idb文件。
在Mysql中執(zhí)行
alter table 表名 discard tablespace;
然后,將需要恢復的.idb文件拷貝到剛才創(chuàng)建的數(shù)據(jù)表的 表名.frm文件所在的文件夾中(一般是在數(shù)據(jù)安裝路徑\data\數(shù)據(jù)庫名 文件夾,在這個文件中可以看創(chuàng)建的表的.frm文件就對了)。
最后,使用下面的命令將復制的.idb文件導入到創(chuàng)建的表中。
在Mysql中執(zhí)行
alter table 表名 import tablespace;
按照上面的就可以恢復表結構和數(shù)據(jù)了,完美收工嘍!
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql中engine=innodb和engine=myisam的區(qū)別介紹
MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持,本文為大家講解下mysql中engine=innodb和engine=myisam的區(qū)別,不懂的朋友可以學習下,希望對大家有所幫助2013-07-07Navicat for MySQL(mysql圖形化管理工具)是什么?
這里就給大家介紹一個常用的MySQL數(shù)據(jù)庫管理工具:Navicat for MySQL,需要的朋友可以參考下2015-09-09zabbix監(jiān)控MySQL主從狀態(tài)的方法詳解
這篇文章主要介紹了zabbix--監(jiān)控MySQL主從狀態(tài)的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-06-06