写了一个web项目后部署到服务器,第二天登录时网页出现报错信息。
No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: ** BEGIN NESTED EXCEPTION **
com.mysql.jdbc.CommunicationsException MESSAGE: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION **
java.net.SocketException MESSAGE: Broken pipe (Write failed) STACKTRACE:
java.net.SocketException: Broken pipe (Write failed) at
java.net.SocketOutputStream.socketWrite0(Native Method) at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) at
这里只截取一部分,基本是上连接不上数据库造成的。
查询原因发现,Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。那么只需要修改配置信息中的wait_time即可。
从网上找到很多解决方案都不奏效。这里说一下我的解决方案。
首先找到mysql的配置文件,我是用的linux系统,rmp方式安装的mysql,mysql的配置文件的默认路径在/etc/my.cnf。
在mysqlid后的插入要修改的配置信息,wait_time