前两天,负责的一个项目出现问题,总是提示"SQLSTATE[HY000] [2002] 由于目标计算机积极拒绝,无法连接",由于负责服务器的同事联系不到,我无法登陆服务器查看原因,只好翻看mysql手册,
发现出现这个错误要查找mysql安装目录下的include/ermsg.h文件,
我发现里面有"#define CR_CONNECTION_ERROR 2002"这语句,
然后又查为何会出现"CR_CONNECTION_ERROR",发现手册上说原因是"Can't connect to local MySQL server through socket",
可是此项目运行在window系统上,好奇怪啊,windows怎么会通过socket连接mysql呢,看手册验证一下:
链接:http://dev.mysql.com/doc/refman/5.7/en/connecting.html
--protocol Value |
Connection Protocol | Permissible Operating Systems |
---|---|---|
TCP |
TCP/IP connection to local or remote server | All |
SOCKET |
Unix socket file connection to local server | Unix only |
PIPE |
Named-pipe connection to local or remote server | Windows only |
MEMORY |
Shared-memory connection to local server | Windows only |
通过表格可以确定,windows不能通过socket连接,那原因是什么呢?
结合自己的猜测和网上的资料,强烈怀疑是mysql服务停止了,
下午同事来了,经过检查,确定:mysql服务的确停止了.
心里纳闷,好端端,怎么停了呢,
然后开启mysql服务,访问项目,正常了
再点击链接(需查询数据库),又报错了
怎么回事?????????????
后来一看mysql服务又停止了( ⊙ o ⊙ )
好奇怪啊!怎么老停?
后来发现,C盘满了,只剩下100多KB,汗!
赶紧清理C盘.
一切恢复正常.