一種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的錯誤