【BREW】brew mysql 沒法鏈接問題


故障現象


今天本地項目怎麼都啓動不了,查看日誌發現是鏈接本地數據庫超時,報錯信息以下:
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  服務的狀態,這裏有三種方法查看:
sql

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


經過 ps 命令加 grep  過濾,能夠查看是否有 msyql  進程在進行。
數據庫

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


也能夠經過 lsof  命令,查看指定端口有沒有啓動,我當時建立的時候用的默認端口 3306  端口,若是你設置了其它端口,能夠改爲對應的
macos

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


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

好的,直接使用  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")。


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

解決方法


原本想重啓一下就能夠了,首先重啓  mysql  服務: brew services restart mysql ,結果重啓完仍是不行。而後我重啓電腦,好吧,仍是失敗。


接着搜索。


在  google  搜索  brew services yellow mysql  能夠發現不僅我一我的遇到。不少人給瞭解決方案,可是仍是折騰了好久,才找到對於我有用的,這裏直接貼兩個。
rest

  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  命令,可能致使沒有卸載乾淨。按步驟一步一步來就行了。


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

引用

  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
相關文章
相關標籤/搜索