1. 程式人生 > >MySQL也有小脾氣之-------windows無法啟動mysql服務

MySQL也有小脾氣之-------windows無法啟動mysql服務

     昨天MySQL還能用,今天中午的時候,執行一個web應用程式需要連線資料庫,本來坐等正確的程式結果,結果報錯了。

    1. 一開始,打算手動通過Navicat進入資料庫,結果顯示

            ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)

   2.  然後,就想看看MySQL服務是否啟動,開啟windows服務之後,發現MySQL這一項服務是“未啟動狀態”,選就“啟動此服務”。但是當進度條到一半左右的時候,彈出錯誤提示框:

            windows無法啟動mysql服務(位於本地計算機上)錯誤1067:程序意外終止。

      在重啟了幾次MySQL服務之後,還是同樣的錯誤,於是就進入“事件檢視器”--->"windows日誌"--->“應用程式”,發現提示的錯誤如圖1:

圖1 

    3.把錯誤資訊“無法找到來自源 MySQL 的事件 ID 100 的描述。本地計算機上未安裝引發此事件的元件,或者安裝已損壞。可以安裝或修復本地計算機上的元件。”也沒找到好的解決方法。於是想,要不重新配置一下MySQL吧。各種”next“之後,配置完成之後,成功進入到”MySQL“,但是發現之前建的資料庫並沒有在這裡面,各種不淡定啊!!那麼多表,不能重新匯入一遍吧。

   4.試試把步驟2出現的錯誤複製到百度,出現了很多解決問題的方法,均指出是配置檔案my.ini出現問題,進入MySQL安裝目錄找到my.ini,發現如圖2的資訊。忽然想到,之前在這個檔案裡面修改了database root的目錄,重新配置之後的資料庫中data是儲存在”C:/ProgramData/MySQL/MySQL Server 6.0/data/“下的,難怪找不到我之前新建的資料庫。然後就修改database root的路徑。

圖2 

   5.百度”如何修改mysql資料儲存位置,出現很多好的方法,主要是參考“http://blog.csdn.net/guodengh/article/details/8507318”中的方法:

           a).修改my.ini檔案中的資料儲存目錄為:datadir="D:\ProgramData\MySQL\data";

           b).停止mySQL相關的服務;

           c).將修改前的datadir下的所有檔案copy到D:\ProgramData\MySQL\data下,會覆蓋掉一些檔案;

           d).重啟MySQL服務,即可。發現之前新建的資料庫以及其中的表現身了

  6.之前的資料庫是現身了,但是開啟有的表卻出錯了,如圖3。

圖3

   幸虧在將修改前的datadir下的所有檔案copy到D:\ProgramData\MySQL\data下之前,把原來的資料備份了一份。關掉MySQL服務,然後將備份的資料copy回到

   D:\ProgramData\MySQL\data下,重啟MySQL服務,進入MySQL,不存在的表又復活啦!!

   小脾氣妥妥搞定啦~~~

   總結:資料庫中的表還是得匯出存著,保留個副本。實在不行重灌資料庫。