1. 程式人生 > >一種Win10專業版環境下MySQL8啟動服務失敗問題的解決方案

一種Win10專業版環境下MySQL8啟動服務失敗問題的解決方案

PS C:\Program Files\mysql-8.0.16-winx64\bin> net start mysql
MySQL 服務正在啟動 ..
MySQL 服務無法啟動。

服務沒有報告任何錯誤。

請鍵入 NET HELPMSG 3534 以獲得更多的幫助。

這...是個令人頭疼的問題。總而言之,解決方案也是亂七八糟的。有的成功了,有的失敗了。

我先說好:以下內容是本人解決問題的方案,不一定適用於大家的,僅僅提供解決問題的思路。

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

摘要:

    在windows中安裝MySQL有兩種方案,一種是官方提供的MySQL installer,另一種則是noinstall模式,noinstall模式提供zip壓縮包,解壓之後輸入幾個命令配個環境變數便能使用。對於追求方便和對MySQL不甚理解的使用者多采用installer進行安裝。而nointstall模式安裝方法則對使用者的技術要求高一些。在文章的以下內容中將分享一種在win10下解決MySQL8.0安裝失敗時的解決方案。

關鍵字:windows10;MySQL8.0;MySQL服務無法啟動;MySQL沒有報告任何錯誤;

正文:

1.錯誤來源

    吾於MySQL官網下載MySQL8的zip版本:

連結:https://dev.mysql.com/downloads/mysql/

    下載後,直接解壓到桌面,並複製至目錄:C:\Program Files\mysql-8.0.16-winx64 ,隨後將bin目錄新增到系統變數path中,並直接按win+x鍵以管理員身份開啟windows powershell,然後輸入mysqld -install提示服務安裝成功,隨後net start mysql想要啟動服務,卻報了個錯:

圖1 - MySQL啟動報錯資訊

    以往我也遇到過很多次該錯誤,每次模模糊糊混過去了並沒有記錄如何解決的方案,更沒有深究其中原理。正好在這篇文章中來刨一刨該問題的根。

2.為什麼容易犯錯

    犯錯原因:普通人對於MySQL的理解便是將MySQL下載完成後,安裝到服務中並啟動服務便能使用了。殊不知MySQL在安裝的過程中還有幾個關鍵步驟需要使用者手動解決。往往是忽略了這些關鍵步驟,所以一次次地出現一些不可預知的錯誤,這些問題竟令我們束手無策。

    windows中 noinstall MySQL安裝的關鍵步驟

    

圖2 - MySQL官方文件中關於noinstall zip Arch安裝的步驟

    簡而言之:

    1.解壓   2.建立修改配置檔案  3.選擇伺服器型別(參考)  4.初始化Data目錄  5.第一次啟動  6.從命令列啟動  7.環境變數新增  8.把MySQL加入到windows服務中去  9.測試

    其中,最容易是我們犯糊塗的就是2,4,5等步驟(3是幹嘛用的我還不太清除),這三個一旦出錯,就容易出現上面的錯誤資訊。

3.如何解決錯誤

    要避免這個錯誤,我們可以直接就事論事,如何解決建立修改配置檔案、初始化Data目錄、第一次啟動中所遇到的問題。

    配置檔案的書寫:在mysql根目錄下建立my.ini,在啟動書寫[mysql]節點的配置,[mysqld]節點配置,參考,而我從網上也得到一些謠言:8.0配置在bin目錄下的mysql_config.pl中書寫,而不用my.conf和my.ini了,然而我在官網並沒有發現有這種說話。可是事實是,我書寫了my.ini然後嘗試按照步驟來啟動後,仍然出現服務無法啟動的狀況,先不說網上這哥們兒說的是否有根據(我不清楚),反正按照他說的沒什麼毛病。總之什麼地方肯定出問題了。我也是修改bin目錄下的mysql_config.pl來解決的。

    初始化data目錄(應該先修改配置檔案):注意,首先切換到bin目錄,甭管你配置沒配置環境變數(網上前輩這麼說的,我也是這麼做的,引用),然後執行 mysqld -initialize,靜候片刻,在mysql根目錄下出現data資料夾即可。

    最後,在鍵入mysqld -install安裝服務(如果服務有問題,mysqld -remove可以移除服務)。

    最最後,鍵入net start mysql啟動服務。服務名在  工作管理員--服務  中可以檢視。

 

4.解決問題方案詳細步驟

    4.1修改配置檔案

    將下載下來的zip解壓後拷貝到某個目錄;然後配置環境變數(可選);接著修改bin目錄下的檔案mysql_config.pl,使用notepad++開啟,詳細修改內容請參照:

my $ldata   = 'C:/Program Files/mysql-8.0.16-winx64/data';
my $execdir = 'C:/Program Files/mysql-8.0.16-winx64/bin';
my $bindir  = 'C:/Program Files/mysql-8.0.16-winx64/bin';

我是看到啟動有跟windows目錄相關的就改成我自己的目錄了,這些目錄就包含根目錄  bin目錄  data目錄等。data此時可能沒有建立,因為需要mysqld -initialize來建立。

這裡需要注意windows目錄反斜槓修改過來,不修改的話好像需要轉義,即   \\

其他地方我也修改了,因為不知道修改的對不對,就不貼出來了,怕誤導了大家;總而言之最後服務啟動時沒問題。

4.2鍵入命令列命令

修改完成後,在bin目錄開啟powershell(在bin目錄空白處按住shift滑鼠右擊),開啟後鍵入命令 mysqld -install,在鍵入mysqld --initialize 在鍵入net start mysql  如下:

圖3 - 成功啟動mysql服務

5.總結

    其中問題的根源所在是配置檔案的修改和書寫,在下安裝的是mysql8.0,如果大家8.0也遇到同樣的問題,不妨按照上面所說的步驟試一試,也許就成功了呢! 這裡也需要注意下,powershell中請儘量以管理員身份開啟,不然容易報錯,在安裝服務的時候如果不是管理員身份就會報access denied的錯誤