最近一个项目中频繁的出现Communications link failure due to underlying exception错误,
网上都说是因为超过8小时应用程序不去访问mysql数据库,数据库就断掉连接.
因为用的是c3p0,项目人气不够.....,所以有些连接的确空闲了8个小时.
网上有很多种解决方案.
1. 修改mysql参数,在mysql.ini的mysqld下面添加
wait_timeout=5
interactive_timeout=5
重启mysql
2.写调试程序
故意使一个连接空闲6秒,立马报错
3.修改c3p0配置,设置maxIdleTime的值,
只有这个值小于mysql的wait_timeout就行了,
调试 ok
4 .还原所有配置,在项目中增加maxIdleTime配置