故障景象


明天本地我的项目怎么都启动不了,查看日志发现是连贯本地数据库超时,报错信息如下:

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  的状态





能够看到列出的状态通常有三种,别离是:

  1. stopped
  2. 黄色的 started
  3. 绿色的 started


其中  stopped  没啥好说的就是此服务是敞开的。那黄色的与绿色的  started  别离代表什么呢?首先绿色的  started  代表服务是启动的并且失常运行。黄色查了半天,发现代表未知,也就是说可能失常启动着,也可能呈现问题,那为什么不间接显示未知呢?看样子是为了兼容,具体能够看这篇文章 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




这个计划大抵是关服务、卸载服务、删除服务数据、降级  brew 、再重新安装服务。我次要看他评论上面两个  Thanks  感觉应该能够,后果还是不行。可能不适宜我这种状况。

  1. 齐全重装 mysql


然而重装之路也很艰巨,怎么都启动不了,呈现了其它问题。应该是没有卸载洁净,起初依照这个 brew install mysql on macOS - Stack Overflow 解决了。





发现之前没有应用  remove & cleanup  命令,可能导致没有卸载洁净。按步骤一步一步来就好了。


???? 好受,莫名其妙呈现的问题,折腾了几个小时,谨以此文留念我逝去的几个小时的青春。

援用

  1. 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