Mysql 表 idb檔案損壞,無法啟動資料庫

2021-08-16 17:16:10 字數 1107 閱讀 6382

今天win10修復硬碟後,mysql無法啟動。

mysql 服務正在啟動 .

mysql 服務無法啟動。

系統出錯。

發生系統錯誤 1067。

程序意外終止。

在workbench 上試圖開啟mysql時,報如下錯誤

後來在網上找到答案,在存放資料庫資料夾的那裡,修改my.ini檔案,可以開啟表損壞的資料庫

在my,ini檔案中的

[mysql]下面新增語句:innodb_force_recovery=1 

數字可以更換,其代表的含義如下:

1. (srv_force_ignore_corrupt):忽略檢查到的corrupt頁。

2. (srv_force_no_background):阻止主線程的執行,如主線程需要執行full purge操作,會導致crash。

3. (srv_force_no_trx_undo):不執行事務回滾操作。

4. (srv_force_no_ibuf_merge):不執行插入緩衝的合併操作。

5. (srv_force_no_undo_log_scan):不檢視重做日誌,innodb儲存引擎會將未提交的事務視為已提交。

6. (srv_force_no_log_redo):不執行前滾的操作。

開啟資料庫後,把損壞的表刪除或者恢復就ok了。

因為我的是.idb檔案丟失,所以我把相關的資料庫刪除就正常了。

因為儲存表的檔案會有兩個,分別是.frm檔案和.idb檔案,如下:

而.frm檔案和.idb檔案分別表示什麼呢?現在還不太明白。

嘗試用.frm檔案恢復資料資訊可以參考如下鏈結

mysql 用idb檔案恢復資料

最近公司mysql資料庫壞掉了 最要命的是ibdata1檔案出現了損壞 導致資料庫啟動失敗 尷尬了於是默默的儲存了 date目錄下的資料結構 然後 google 找辦法是否可以利用data目錄下的資料恢復表結構 最後成功恢復 記錄如下 我的mysql版本 mysql 5.6.35 winx64 免安...

MySQL刪除idb檔案引發的思考

最近發現乙個好玩的東西,就是通過rm刪除mysql乙個表的idb檔案,發現我查這張表的時候資料還是可以查的,好奇怪怎麼可以這樣?1 發現幾個概念 檔案系統與硬碟儲存 inode節點 硬碟結構 linux如何訪問檔案 lsof 通過查詢資料發現 檔案物理儲存結構就是 home stu01 home s...

損壞的主檔案表 MySQL表空間加密(TDE)

本文將 有關innodb表空間加密技術,該技術對於保護資料非常有用。在mysql 5.7中,新增了乙個新功能 innodb表空間加密 以保護靜態資料。這是安全性中最期待的功能。此加密支援每個表的所有檔案表空間,並且不支援共享表空間。這種加密技術基於旋轉金鑰檔案而起作用。有兩種型別的金鑰管理外掛程式可...