問題描述
這段時間使用Java連接mysql的時候時不時出現無法連接的情況。
我再三核對了賬號密碼數據庫名,發現都沒有錯誤。
問題分析
進行了以下嘗試:
1取消password字段進行連接,發現提示連接錯誤,但提示我使用了密碼
2更改成端口號進行連接,提示連接不到服務;當我關掉mysqld服務,並把代碼中端口號改回3306,發現依然提示連接不到服務
推測可能是3306上有兩個mysql服務
問題解決
事先關閉mysql服務
netstat命令可以查看端口占用情況,其中
netstat -a -n #顯示各個端口占用
netstat -ano #顯示各個端口占用和進程PID
開始--運行--cmd 確定或回車進入命令提示符窗口,鍵入netstat -ano 即可看到所有連接的端口占用情況及PID,然后在任務管理器中找到這個PID所對應的程序,如果任務管理器中沒有PID這一項,可以在任務管理器中選"查看"-"選擇列"-"PID"前打上對勾。
也可以用以下辦法確定是那個程序占用了端口。
進入命令提示符然后鍵入netstat -aon|findstr "3306"(例如我要查看3306端口是被那個應用程序占着)
C:Documents and SettingsAdministrator>netstat -aon|findstr "3306"
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 2000
C:Documents and SettingsAdministrator>tasklist|findstr "2000"
mysqld-nt.exe 252 Console 0 17,820 K
由此可以看出是mysqld-nt.exe占用着3306端口。
找到占用的進程后,便可以通過任務管理器,找到對應名字,右鍵選擇打開所在位置,設法刪除改名卸載都可以。
參考資料
1.https://blog.csdn.net/hxbunulidehaizhi/article/details/50500645