解决com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 的错误
分析原因:
首先在mysql下用命令:mysql﹥ show global variables like 'wait_timeout'; 查看wait_timeout
这里我的wait_timeout是60也就是一分钟,设置默认值太小
(取值范围:1-31536000(linux),interactive_time取值随wait_timeout变动)
所以如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。
解决:在linux系统配置文件:/etc/my.cnf
1.修改配置
vi /etc/my.cnf
wait_timeout = 604800
interactive_timeout = 604800
2:重启mysql服务( service mysqld restart)
# /etc/init.d/mysql restart
到此那么连接超时的问题从数据库上就解决了。
备注:
interactive_timeout:服务器关闭交互式连接前等待活动的秒数
wait_timeout:服务器关闭非交互连接之前等待活动的秒数