Mysql無法啟動 InnoDB: Attempted to open a previously opened tablespace


win2008,Mysql5.6,mysql服務無法啟動

查看事件日志,報錯InnoDB: Attempted to open a previously opened tablespace

最終解決方法,修改my.ini

把innodb_force_recovery = 0 修改 innodb_force_recovery = 1

================================================

參數Innodb_force_recovery影響了整個InnoDB存儲引擎的恢復狀況。默認0

因為日志已經損壞,這里采用非常規手段,首先修改innodb_force_recovery參數,使mysqld跳過恢復步驟,將mysqld 啟動,將數據導出來然后重建數據庫。

innodb_force_recovery可以設置為1-6,大的數字包含前面所有數字的影響。

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):不執行前滾的操作。

注意

a 當設置參數值大於0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。

 

立即對數據庫做邏輯導出 ,完成之后將innodb_force_recovery設置為0 ,innodb_purge_thread=1 ,然后重建數據庫 。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM