
这是C3P0配置的超时时间和mysql超时时间不一致导致的,C3P0为60秒超时,mysql为30秒超时,在30-60之间的时间mysql已经断开连接,而C3P0还维持连接,再次发送请求就会报上面的错误。
解决方法:
1、修改C3P0的maxIdleTime参数为30。
2、修改mysql的wait_timeout参数为60秒。不停机状态下进入mysql命令行,执行set global wait_timeout=60
第一种途径使用命令行在mysql提示符下>setglobalwait_timeout=1814400这种方式是一种临时方法,重启服务就会返回默认值了。第二种途径修改my.ini配置文件[mysqld]wait_timeout=31536000interactive_timeout=31536000在mysqld下面添加以上两行,后面的数字是时间首先服务中找到mysql,然后右键属性,在可执行文件的路径中,使劲向后拖动鼠标就可以看到my.ini的文件了。mysql信号量600s超时原因是与mysql的连接被持有了4,514,485毫秒,这段持有时间内没有任何任何的交互,mysql连接一直处于等待状态,mysql有个等待超时的设置。发现wait_timeout这个等待超时时间小于这个mysql连接的持有时间。mysql连接因等待超时,mysql服务器会主动关闭该连接。而客户端并不知晓,认为连接依然有效,并试图发送请求,这时就会抛出这个连接异常信息。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)