天天看點

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

這幾天因為工作需求,需要把MySQL請出來,是以将塵封已久的MySQL進行啟動。可是事與願違,興許是許久沒有通路MySQL了,MySQL生氣的不理我,并向外抛出一陣陣報錯。

1、其中一個是:Windows無法啟動MySQL57服務(位于本地計算機上)錯誤1067:程序意外終止,報錯如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

2、緊跟着還有一個報錯:本地計算機上的MySQL服務啟動後停止。某些服務在未由其他服務或程式使用時将自動停止,報錯如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

3、之後即便我垂死掙紮,在指令行視窗中不斷的重新開機MySQL服務,但是仍然沒有戳到痛點,嘗試的步驟有下圖為證。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

4、随後想當然的硬上進入MySQL,根本就不可能,隻能撞南牆,敗興而歸。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

5、後來也想過直接通過點選“我的電腦>管理>服務>MySQL”,收到啟動MySQL,但是絲毫沒有改觀。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

6、經過一番嘗試之後,還是行不通。無奈之下,不斷的尋找blog,終于找到了一個可行的方法,但是代價也是很大的,基本上是給MySQL洗心革面了。如果小夥伴們的原始MySQL中有重要的資料的話,不建議使用這種方法;如果覺得已經在資料庫中的資料無關緊要或者不小心遇到了這個問題,那就可以大膽的使用這種方法,隻不過是重頭再來,具體的解決步驟如下。

首先務必使用管理者權限進入到指令行、務必使用管理者權限進入到指令行、務必使用管理者權限進入到指令行,重要的事情說三遍,不然的話就會出現“發生系統錯誤 5。 拒絕通路。”這樣的錯誤,如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

7、之後進入到MySQL安裝目錄下,找到bin目錄,這個過程是必須的。這個過程很簡單,一路上使用cd指令和dir檢視目錄檔案的指令互相結合,直到進入到bin目錄下為止。一般來說,MySQL的安裝預設路徑是:C:\Program Files\MySQL\MySQL Server 5.7\bin,大家可以做下參考。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

8、之後進行初始化data目錄。如果在與bin目錄同級的檔案夾下沒有data檔案夾的話,則建立一個data空目錄,名字務必為data。如果有該目錄的話,記得要清空data目錄下的所有初始檔案,就醬紫。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

9、之後到bin目錄下執行指令(管理者身份打開指令行視窗):mysqld –initialize,如下圖所示。初始化大概需要20秒左右的時間,靜觀其變即可。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

之後就可以看到MySQL服務順利啟動。

而且在狀态欄的MySQL Notifier中也會彈出提示,如下圖所示,MySQL的狀态變為從停止變為啟動。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

10、此時通過指令行視窗再次登入資料庫(指令為:mysql –u root -p)就可以順利進入了,但是輸入你之前的曆史遺留的密碼并不好使了,而且會報錯,報錯為:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

這是因為MySQL初始化之後,生成了一個初始密碼,放在了data檔案夾下以.err為字尾的檔案夾下,如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

11、此時,通過電腦自帶的記事本打開檔案,是不太行得通的,通過sublime text就可以順利打開了,以“password”為搜尋項,很快就定位到初始密碼了,如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

這個密碼是随機生成的,而且相對複雜,可以直接複雜粘貼到指令行視窗。

12、将初始化密碼進行複制,粘貼到MySQL登入的密碼中去,如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

此時可以看到,順利進入到了MySQL。

13、但是直接輸入MySQL的簡單指令之後,發現并不能操作資料庫,會提示報錯:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.,如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

14、這個報錯的意思是告訴你重設密碼,此時隻需要輸入指令重新設定密碼即可。至于MySQL重設密碼的方法網上有很多,在這裡不展開講述了,小編用的文法是:alter user 'root'@'localhost' identified by '123456';,其中123456是重設的密碼,大家可以自定義的,順利設定完成之後記得重新整理權限:flush privileges;,爾後你就可以正常操作資料庫了。該步驟的具體操作過程如下圖所示。

MySQL服務啟動:某些服務在未由其他服務或程式使用時将自動停止

至此,問題完美的解決了,希望對日後不慎踩入此坑的小夥伴們有幫助~~