InnoDB 類型MySql恢復(fù)表結(jié)構(gòu)與數(shù)據(jù)
前提:保存了需要恢復(fù)數(shù)據(jù)庫的文件 .frm 和 .ibd 文件
條件:InnoDB 類型的
恢復(fù)表結(jié)構(gòu)
1.新建一個數(shù)據(jù)庫--新建一個表,表名和列數(shù)和需要恢復(fù)數(shù)據(jù)庫相同
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ù)庫 下的.frm格式文件
5.啟動mysql服務(wù)器 service mysql start
6.停掉數(shù)據(jù)庫服務(wù) service mysql stop ,將my.cnf 里面的 innodb_force_recovery = 6 注釋掉
7.啟動mysql服務(wù)器 service mysql start
恢復(fù)數(shù)據(jù)
1.先恢復(fù)表結(jié)構(gòu)
2.執(zhí)行 alter table `user` discard tablespace ; 執(zhí)行完之后,數(shù)據(jù)庫目錄下的user.ibd文件就沒了
3.把你備份的ibd放到消失的user.ibd文件那里
4.給這個文件加權(quán)限 chown -R mysql:mysql data 所有者為mysql
5.執(zhí)行 alter table `user` import tablespace; 執(zhí)行完,表數(shù)據(jù)就可讀了,這時候會丟失一些諸如表行記錄數(shù)等存在系統(tǒng)表里的信息
備注:如果遇到外鍵約束,在語句前加上SET FOREIGN_KEY_CHECKS = 0; 完成后記得改為1
相關(guān)文章
Mysql中g(shù)roup by 使用中發(fā)現(xiàn)的問題
當使用MySQL的GROUP BY語句時,根據(jù)指定的列對結(jié)果進行分組,這種情況通常是由于在 GROUP BY 中選擇的字段與其他非聚合字段不兼容,或者在 SELECT 子句中沒有正確使用聚合函數(shù)所導(dǎo)致的,本文給大家介紹Mysql中g(shù)roup by 使用中發(fā)現(xiàn)的問題,感興趣的朋友跟隨小編一起看看吧2024-06-06asp.net 將圖片上傳到mysql數(shù)據(jù)庫的方法
圖片通過asp.net上傳到mysql數(shù)據(jù)庫的方法2009-06-06MySQL服務(wù)無法啟動且服務(wù)沒有報告任何錯誤的解決辦法
在啟動項目時,發(fā)現(xiàn)昨天能夠跑的項目今天跑不了了,一看原來是mysql數(shù)據(jù)庫出現(xiàn)了問題,下面這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)無法啟動且服務(wù)沒有報告任何錯誤的解決辦法,需要的朋友可以參考下2023-05-05