共计 1507 个字符,预计需要花费 4 分钟才能阅读完成。
故障景象
明天本地我的项目怎么都启动不了,查看日志发现是连贯本地数据库超时,报错信息如下:
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 服务的状态,这里有三种办法查看:
- 通过
ps
命令
ps -ef | grep mysql
通过 ps
命令加 grep
过滤,能够查看是否有 msyql 过程在进行。
- 通过
lsof
命令
lsof -i:3306
也能够通过 lsof
命令,查看指定端口有没有启动,我过后创立的时候用的默认端口 3306 端口,如果你设置了其它端口,能够改成对应的
- 通过 brew 的
services
查看(举荐)
brew 的 services
是用来治理后盾服务命令,它次要有如下性能:
好的,间接应用 brew services
命令看看 mysql 的状态
能够看到列出的状态通常有三种,别离是:
- stopped
- 黄色的 started
- 绿色的 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 能够发现不只我一个人遇到。很多人给了解决方案,然而还是折腾了很久,才找到对于我有用的,这里间接贴两个。
- homebrew – brew services list shows mysql running but cannot connect – Stack Overflow
这个计划大抵是关服务、卸载服务、删除服务数据、降级 brew、再重新安装服务。我次要看他评论上面两个 Thanks 感觉应该能够,后果还是不行。可能不适宜我这种状况。
- 齐全重装 mysql
然而重装之路也很艰巨,怎么都启动不了,呈现了其它问题。应该是没有卸载洁净,起初依照这个 brew install mysql on macOS – Stack Overflow 解决了。
发现之前没有应用 remove & cleanup 命令,可能导致没有卸载洁净。按步骤一步一步来就好了。
???? 好受,莫名其妙呈现的问题,折腾了几个小时,谨以此文留念我逝去的几个小时的青春。
援用
- What is the meaning yellow service “started” status on Homebrew? – Stack Overflow
- homebrew – brew services list shows mysql running but cannot connect – Stack Overflow
- brew install mysql on macOS – Stack Overflow