mysql 启动出错问题排查
概述
由于服務器不正常關機導致了 mysql 服務啟動不了,提示: 錯誤 1067:進程意外終止。
具體錯誤提示如下:
看到這個錯誤,大家的第一反映就是去網上查詢 mysql 1067 相關的問題。結果查出來好多解決方案,嘗試了多種解決方案,結果都不可用。
解決思路
由于出現 1067 這個問題可能是多種原因導致的。這里我們應該分析 mysql 的日志信息,通過日志來具體分析是什么原因導致的 1067 這個錯誤。然后在針對性的去網上查詢。
出現這個問題后,我們首先要做的是查看本地mysql的日志,看看日志報的什么錯,根據錯誤信息再從網上找解決方案。這就牽扯到我們如何查看日志信息。
事件查看器
如果是 window 環境,可以直接在事件查看器中查看 mysql 相關的日志。效果如下圖:
也可以從日志文件中查詢
如果不知道日志文件路徑默認是在 data 目錄中
如果設置了 日志文件路徑,請在 my.ini 文件中查找。
根據日志網上查詢,可知道,是日志文件崩潰,無法修復損壞。
解決問題
下面在 my.ini 文件中添加
innodb_force_recovery = 1
然后就解決該問題了
innodb_force_recovery 參數說明
innodb_force_recovery影響整個InnoDB存儲引擎的恢復狀況。
默認為0,表示當需要恢復時執行所有的日志。
innodb_force_recovery可以設置為1-6,大的數字包含前面所有數字的影響。
當設置參數值大于0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。
- (SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁。
- (SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程需要執行full purge操作,會導致crash。
- (SRV_FORCE_NO_TRX_UNDO):不執行事務回滾操作。
- (SRV_FORCE_NO_IBUF_MERGE):不執行插入緩沖的合并操作。
- (SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存儲引擎會將未提交的事務視為已提交。
- (SRV_FORCE_NO_LOG_REDO):不執行前滾的操作。
總結
面對錯誤,要查看日志文件,對癥下藥。不能只根據表面錯誤去定位問題。
總結
以上是生活随笔為你收集整理的mysql 启动出错问题排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NIO 之 Channel
- 下一篇: Ubuntu18 搭建apache2+p