【BREW】brew mysql 無法連接問題


故障現象


今天本地項目怎麼都啓動不了,查看日誌發現是連接本地數據庫超時,報錯信息如下:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

排查過程


首先查看代碼,發現也沒有修改到數據庫相關的內容,突然出現有點詭異。


轉念一想會不會是數據庫出了問題,果然,使用數據庫管理工具 Datagrip  連接的時候也報了同樣的錯誤,所以基本確定是 mysql  出了問題。


首先查看 **brew **安裝的本地 mysql  服務的狀態,這裏有三種方法查看:

  1. 通過 ps  命令
ps -ef | grep mysql


通過 ps 命令加 grep  過濾,可以查看是否有 msyql  進程在進行。

  1. 通過 lsof  命令
lsof -i:3306


也可以通過 lsof  命令,查看指定端口有沒有啓動,我當時創建的時候用的默認端口 3306  端口,如果你設置了其它端口,可以改成對應的

  1. 通過  brew  的  services  查看(推薦)


 brew  的  services  是用來管理後臺服務命令,它主要有如下功能:

好的,直接使用  brew services  命令看看  mysql  的狀態


image.png


可以看到列出的狀態通常有三種,分別是:

  1. stopped
  2. 黃色的 started
  3. 綠色的 started


其中  stopped  沒啥好說的就是此服務是關閉的。那黃色的與綠色的  started  分別代表什麼呢?首先綠色的  started  代表服務是啓動的並且正常運行。黃色查了半天,發現代表未知,也就是說可能正常啓動着,也可能出現問題,那爲什麼不直接顯示未知呢?看樣子是爲了兼容,具體可以看這篇文章 [What is the meaning yellow service "started" status on Homebrew? - Stack Overflow](https://stackoverflow.com/questions/41873704/what-is-the-meaning-yellow-service-started-status-on-homebrew/55798920 "What is the meaning yellow service "started" status on Homebrew? - Stack Overflow")。


很不幸的是,這個黃色對我來說是故障。

解決方法


本來想重啓一下就可以了,首先重啓  mysql  服務: brew services restart mysql ,結果重啓完還是不行。然後我重啓電腦,好吧,還是失敗。


接着搜索。


在  google  搜索  brew services yellow mysql  可以發現不只我一個人遇到。很多人給瞭解決方案,但是還是折騰了很久,才找到對於我有用的,這裏直接貼兩個。

  1. homebrew - brew services list shows mysql running but cannot connect - Stack Overflow

image.png


這個方案大致是關服務、卸載服務、刪除服務數據、升級  brew 、再重新安裝服務。我主要看他評論下面兩個  Thanks  覺得應該可以,結果還是不行。可能不適合我這種情況。

  1. 完全重裝 mysql


但是重裝之路也很艱難,怎麼都啓動不了,出現了其它問題。應該是沒有卸載乾淨,後來按照這個 brew install mysql on macOS - Stack Overflow 解決了。


image.png


發現之前沒有使用  remove & cleanup  命令,可能導致沒有卸載乾淨。按步驟一步一步來就好了。


😔 難受,莫名其妙出現的問題,折騰了幾個小時,謹以此文紀念我逝去的幾個小時的青春。

引用

  1. [What is the meaning yellow service "started" status on Homebrew? - Stack Overflow](https://stackoverflow.com/questions/41873704/what-is-the-meaning-yellow-service-started-status-on-homebrew/55798920 "What is the meaning yellow service "started" status on Homebrew? - Stack Overflow")
  2. homebrew - brew services list shows mysql running but cannot connect - Stack Overflow
  3. brew install mysql on macOS - Stack Overflow
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章