MySQL 奇怪連接錯誤排查:殘留服務導致 Navicat 無法連接本地實例
現象描述
- 需導入 88MB CSV,Navicat 導入無響應,改用命令行
- 為保險重啟 MySQL 服務:停止 → 啟動,服務顯示「運行中」
- 但 Navicat 連接本地實例報錯(典型新手連接失敗錯誤框)
排查過程
- 百度常見解法:修改綁定地址、授權用戶、防火牆、重置密碼……均無效
- 發現系統服務列表中有 兩個 MySQL 服務:
MySQL55 和 MySQL57(或類似)
- 當前啟動的是
MySQL55,但 Navicat 配置連接的是默認 3306 端口(實際被 MySQL57 佔用)
- 啟動
MySQL57 服務後,Navicat 連接恢復正常
根因分析
歷史安裝過多個 MySQL 版本,卸載不乾淨留下殘留服務,端口衝突導致連接錯誤指向。
解決方案
- 徹底清理:服務管理器中禁用/刪除舊版本服务(
sc delete 服務名)
- 統一端口:保留一個實例,配置固定端口,Navicat 指定該端口
- 驗證端口佔用:
netstat -ano | findstr 3306 確認進程 PID
教訓總結
環境遷移/多版本共存時,務必檢查服務列表和端口佔用,不要假設只有一個 MySQL 實例在運行。