InnoDB 類型MySql恢復(fù)表結(jié)構(gòu)與數(shù)據(jù)
前提:保存了需要恢復(fù)數(shù)據(jù)庫(kù)的文件 .frm 和 .ibd 文件
條件:InnoDB 類型的
恢復(fù)表結(jié)構(gòu)
1.新建一個(gè)數(shù)據(jù)庫(kù)--新建一個(gè)表,表名和列數(shù)和需要恢復(fù)數(shù)據(jù)庫(kù)相同
2.停止mysql服務(wù)器 service mysql stop ,
3.在/usr/local/mysql/my.cnf 里面添加innodb_force_recovery = 6
4.將需要恢復(fù)的表.frm格式文件 覆蓋/usr/local/mysql/data/數(shù)據(jù)庫(kù) 下的.frm格式文件
5.啟動(dòng)mysql服務(wù)器 service mysql start
6.停掉數(shù)據(jù)庫(kù)服務(wù) service mysql stop ,將my.cnf 里面的 innodb_force_recovery = 6 注釋掉
7.啟動(dòng)mysql服務(wù)器 service mysql start
恢復(fù)數(shù)據(jù)
1.先恢復(fù)表結(jié)構(gòu)
2.執(zhí)行 alter table `user` discard tablespace ; 執(zhí)行完之后,數(shù)據(jù)庫(kù)目錄下的user.ibd文件就沒(méi)了
3.把你備份的ibd放到消失的user.ibd文件那里
4.給這個(gè)文件加權(quán)限 chown -R mysql:mysql data 所有者為mysql
5.執(zhí)行 alter table `user` import tablespace; 執(zhí)行完,表數(shù)據(jù)就可讀了,這時(shí)候會(huì)丟失一些諸如表行記錄數(shù)等存在系統(tǒng)表里的信息
備注:如果遇到外鍵約束,在語(yǔ)句前加上SET FOREIGN_KEY_CHECKS = 0; 完成后記得改為1
相關(guān)文章
刪除MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單教程
這篇文章主要介紹了刪除MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
mysql 導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)以及函數(shù)、存儲(chǔ)過(guò)程的介紹
本篇文章是對(duì)mysql中的導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)命令以及函數(shù)、存儲(chǔ)過(guò)程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
MySQL數(shù)據(jù)庫(kù)之內(nèi)置函數(shù)和自定義函數(shù) function
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)之內(nèi)置函數(shù)和自定義函數(shù) function,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06

