Communications link failure mysql自动停止 连接拒绝 mysqld dead but sub。。。

服务器环境中

JAVA 连接数据库 Communications link failure, Contection refused

网上很多这种情况,解决基本上是将127.0.0.1换成localhost

但是我这个比较傻b,原因也很无奈。值得纪念,以下是我解决的过程,过程还是值得学习的。

1、症状:java 连接数据库 访问拒绝 连接拒绝。

  原因:基本上是围绕着 IP,PORT,DB,USERNAME,PASSWORD这几个参数,只能是这里出了问题。 

  过程:将127.0.0.1换成localhost,还是不行,修改timeout时间也不行(如果修改超时时间就可以了,你应该查看是什么原因造成连接时间过长)

  原因:原来是数据库停止了,是IP参数造成的。

为什么mysql停止了呢?

2、症状:java连接数据库,出现 mysqld killed。。(比较隐蔽,一般看不到)查看mysql状态,显示mysql dead。。

  原因:一般正常来说,mysqld是被mysqld_safe管理的,mysqld_safe相当于一个守护进程,一般mysql出现错误,停止后,mysqld_safe会自动重启mysql

      然而,mysqld 却 dead 了,这显然不正常,说明mysqld_safe没有重启mysql,或重启失败了。

  过程:查看mysqld_safe日志,确实显示重启失败。

  原因:内存不够了。。。。。。。

原来,mysql启动时会创建一个默认128M的缓冲池,当时服务器上跑的程序太多了,连128M都分不出来了。

解决:升级服务器,关闭不需要的程序,调低mysql  buffer pool 大小

原文地址:https://www.cnblogs.com/ming-question/p/11326874.html