無法啟動mysql服務 錯誤1067:進程意外中止


     這個錯誤在前些周遇到過,沒有解決,直接粗暴的卸載重裝了,自己用的是wampserver集成環境,重裝的后果是mysql里面的一些已有的數據庫就沒有了,有點小悲劇,不過幸好都是一些測試用的數據庫,后面直接向小伙伴重新要了份,這次又遇到了,受不了了,谷歌百度,花了倆鍾把把解決了,解決方案是在mysql的my.ini文件中添加一行:

下面記錄下問題解決windows下mysql啟動不了的一般的流程:

1、先檢查mysql的端口號是否被暫用,windows的cmd下使用,有用的話則把對應的程序關閉掉

windows下查詢端口占用:netstat -ano | findstr "3306"   ,由此可以得到占用端口的進程號

根據進程號PID得到進程名字:tasklist |findstr 6432          ,由此得到進程名稱

windows殺死對應進程,用任務管理器,或者taskkill  /PID 6432 或者taskkill /IM notepad.exe

 

2、如果沒有端口占用,右擊計算機---管理---服務,找打mysql,wampserver的是   wampmysqld,如下圖,嘗試啟動,能啟動最好,不能啟動,會提示相應的報錯,可以根據不同的錯誤類型,一般會得到相應的提示或解決方案,如不行,見下一步:

clipboard clipboard[1]

3、查看事件管理器中的應用程序,找到帶紅色感嘆號的mysql,看看錯誤日志是什么,我這次遇到的問題如下:

InnoDB: Attempted to open a previously opened tablespace. Previous tablespace ck_cookabuy/ck_brands uses space ID: 35 at filepath: .\ck_cookabuy\ck_brands.ibd. Cannot open tablespace cookabuy3/ck_users which uses space ID: 35 at filepath: .\cookabuy3\ck_users.ibd 

clipboard[2]

事件查看器

clipboard[3]

根據錯誤提示,在goole下找到這么篇文章

就是在mysql的配置文件my.ini中添加

innodb_force_recovery = 1

重啟后就正常了,完事之后可以把這個去掉。

后面又去了解了下關於這個配置選項已經錯誤的原因,

     原來是我機器關機的時候沒有正常關閉數據庫,因為偷懶,在自己的機器上開發,一般就直接關機,結果導致mysql日志文件損壞,重啟之后無法正常恢復,更無法正常對外提供服務。

而關

於innodb_force_recovery參數,參考這篇博文【案例】利用innodb_force_recovery 解決MySQL服務器crash無法重啟問題 ,才知道他有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):不執行前滾的操作。

由此就能夠理解這個錯誤的原因以及解決方法了,看來以后還是要關機還是要正常關閉數據庫啊。


看了百度里面很多方法,折騰了挺久,最后就那么一句配置解決問題,是自己經驗不足吧,僅此做個記錄。希望這篇文章能夠幫助遇到同樣問題的小伙伴。


免責聲明!

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



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