【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
相关文章
相关标签/搜索