服务器环境中
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 大小