[MySQL] “MySQL 服務無法啟動”原理及解決方法

千叶314發表於2024-04-04

最近在學習資料庫,安裝MySQL時候第一條指令net start mysql就無法正常執行,錯誤如下:

MySQL 服務正在啟動 .
MySQL 服務無法啟動。

服務沒有報告任何錯誤。

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

在網上找了很多教程,百度靠前的全部都是讓跟著輸入以下指令:

E:\Mysql\mysql-8.0.26-winx64\bin>mysqld -remove MySQL
Service successfully removed.

E:\Mysql\mysql-8.0.26-winx64\bin>mysqld --initialize-insecure

E:\Mysql\mysql-8.0.26-winx64\bin>
E:\Mysql\mysql-8.0.26-winx64\bin>mysqld -install
Service successfully installed.

E:\Mysql\mysql-8.0.26-winx64\bin>net start mysql
MySQL 服務正在啟動 ..
MySQL 服務已經啟動成功。

也許這些指令能夠解決大部分使用者的問題,但可惜這次我屬於那一小部分使用者。按照提示一行一行輸入並得到同樣的反饋之後我再嘗試執行net start mysql。

結果依然是“無法啟動”。

被逼無奈我只好在網上繼續尋找除了C站以外的網站的指導教程,終於在gitcode上找到了一個能夠解決我問題的,以下就簡要介紹一下解決經過。

首先描述一下“無法啟動”的原因,是由於mysql的預設埠是3306,因此在啟動服務的時候,如果此埠被佔用,就會出現如上“Mysql服務無法啟動 服務沒有報告任何錯誤”的情況。

因此,我們可以先在管理員命令列視窗執行netstat -aon檢視是哪個程序佔用了3306埠,看的是0.0.0.0:3306對應的程序。

圖中這個1124程序佔用了3306埠,按道理可以簡單直接把1124殺了,MySQL就能啟動了,但我還是留了個心眼,開啟工作管理員看了一眼1124是哪個程序,不看不知道,原來是“mysqld.exe”(因為當時沒打算記錄所以沒截圖),好傢伙原來是大水衝了龍王廟。

接下來還是在剛剛的命令列視窗執行taskkill /f /pid xxxx,就可以殺掉對應程序,我需要輸入的就是1124。

然後再執行net start mysql就成功了。

特此記錄,還是希望大家在寫教程的時候簡要介紹一下原因,畢竟有些時候報錯的原因可能是多種多樣的,不同的原因解決方式也可能不同。

介紹一下原因方便讀者自行判斷,看方法是否適用於自己的問題。否則,就只能像我一開始一樣胡亂嘗試了。

相關文章