您現在的位置: 365建站網 > 365學習 > Mysql數據庫(innodb)損壞,通過idb和frm恢復表結構和數據的方法

Mysql數據庫(innodb)損壞,通過idb和frm恢復表結構和數據的方法

文章來源:365jz.com     點擊數:955    更新時間:2019-11-12 21:18   參與評論

我們知道MySQL中如果用的是MYISAM數據引擎,那么數據很好恢復,只要將相應.frm, .MYD, .MYI文件拷貝過去即可。但是如果是innodb的話,如果開啟innodb_file_per_table=1,則每一個數據表都是一個單獨的文件,比如User表,則會建立User.frm和User.ibd.


那么直接拷貝這兩個文件到新的MySQL數據目錄下可以嗎,一般來說是不行的,那么什么時候可以呢?只有在你的ibd文件的tablespace id和ibdata1文件中的元信息的tablespace id一致才可以。


那么怎么辦呢?根據之前講的,innodb恢復不了就是因為table space id不匹配導致的。所以我們可以這樣做 (以zhc_db數據庫為例):


1 首先將當前mysql數據目錄下的ibdata1文件和zhc_db下邊的frm和ibd文件備份。


2 將之前要恢復的ibdata1和frm和ibd文件拷貝到當前的mysql數據目錄下,進行覆蓋。注意因為當前數據庫可能還有其它數據庫和表,所以這一步可能導致其它數據庫出現問題。不過沒關系,因為我們已經備份了。


3 保險起見,重啟一下mysql吧,service mysql restart


4 直接登錄到zhc_db數據庫,mysql -u root -p zhc_db; 這時候你就可以show tables和select了,激動了吧,看到你的數據了吧。


5 將此數據庫用mysqldump導出,mysqldump -u root -p[password] zhc_db > dump_zhc_db.sql


好了,你已經有了以前的數據和表定義。


6 最后一步,別忘了,將ibdata1文件和zhc_db下邊的文件用之前的備份進行恢復。


7 重啟mysql,然后你就可以將你的數據進行導入了。注意目錄的權限一定是MySQL可讀寫的。


.frm恢復表結構


溫馨提示:如果你已經恢復了表數據,可以直接忽略此操作,開始下一步操作


MySql創建每張表后都會在“mysql安裝目錄/data/數據庫名/”目錄下創建一個“表名.frm”文件。


該.frm文件并不能直接打開,但是它可以幫助你恢復你的表結構~~


具體操作如下:


1、準備恢復bhusk數據庫中的表結構,其中bhusk數據庫中包含了admin表。


2、我們首先連接數據庫,創建數據庫bhusk,自己可視化工具或許會快一點

create database bhusk;


3、然后在該數據庫下創建表admin ,只需要包含一個簡單的字段便可,主要是創建出一個同名的表,方便接下來的替換。

create table `admin`( id varchar(32) not null);


4、這一步請將mysql數據庫服務關閉


5、將之前舊的數據庫留下來的/data/bhusk/admin.frm文件覆蓋掉現在新的數據庫/data/bhusk目錄下的admin.frm文件。


6、給這個admin.frm加權限,所有者mysql ,權限660(你可以參考別的ibd文件所有者和權限設置) (這一步幾乎可以忽略)此步為linux權限操作


7、最后啟動數據庫,可以查表結構了


.idb恢復表數據


1、 現在admin表結構有了,開始準備恢復數據,如果通過以上方法恢復表結構,那一定在/data/bhusk/目錄下會有admin.idb文件。


2、接下來執行alter table `admin` discard tablespace ;執行完之后,數據庫目錄下的user.ibd文件就沒了


3、把你備份的ibd放到消失的admin.ibd文件那里。


4、給這個文件加權限,所有者mysql ,權限660(你可以參考別的ibd文件所有者和權限設置)(這一步幾乎可以忽略)此步為linux權限操作


5、執行 alter table admin import tablespace; 執行完,表數據就可讀了,這時候會丟失一些諸如表行記錄數等存在系統表里的信息,不過那些信息無所謂。表其實這時候已經可以正常用了。如果不放心,可以導出sql語句或txt,再創建表導入。

如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇


發表評論 (955人查看,0條評論)
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼: 點擊我更換圖片
最新評論
------分隔線----------------------------
自拍偷拍福力视频,偷拍国际精品,麻豆一区福利电影,国产网红视频午夜福利,se视频大全,久久国产AV影院 亚洲美国产亚洲AV| 久视频精品线在线观看| 在线看免费无码av天堂| 亚洲另类无码专区首页| 老师啪到学生下面流水视频| 曰本人牲交免费视频| freesex呦交| 中文字幕亚洲无限码| 日本免费极度色诱福利视频| 4399神马电影在线观看免费| 美女张开双腿让男生桶| 日本熟妇无码亚洲成a人片| 一本道高无码字幕在线| 梁千歌薄修沉全文免费阅读| 97se亚洲国产综合自在线| chinese男同志movies| 正在播放夫の前で痴汉に绝顶| 免费看女人的隐私超爽| 男朋友说让我舒服上天| 久久精品国产99国产精品亚洲| 黑色丝袜美美女被躁翻了| baoyu.tv.777尤物| 国模人体| 亚洲日韩天堂在线| 年轻的母亲6兔费线6| 超97免费视频在线观看| 国产网红主播无码精品| 国产成人夜色高潮福利影视| 超市厕所偷拍又白又大的屁股| 国偷自产一区| 久久男人av资源网站无码| http://www.yuehui919.com