错误:
Software caused connection abort: recv failed
Communications link failure
The last packet successfully received from the server was 204,219 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
不知道有没有其他情况 我遇到的情况是因为与数据库建立的连接有问题了:
mysql 默认连接是8小时wait_timeout 也就是说Connection如果8小时闲置不用就会失效(或者上手动关闭 跟失效一样)
可以查看变量值:
show global variables like 'wait_timeout';
修改:
windows系统 就在安装目录下的my.ini (也可能上my.cnf)中 添加如下wait_timeout 参数 参数单位是秒 如果设置成10天失效60*60*24*10
linux系统 /etc/my.cnf 跟windows修改一样 也是添加一个参数
代码:
如果不想修改数据库的参数 可以用代码实现
如果是使用的连接池的话 每种不同的连接池应该会有类似自动连接 或者是超时重连机制 需要针对不同技术看需要设置什么参数
如果是自己用jdbc的话 就需要写一个定时(最好小于数据库默认的超时时间 8小时) 比如 每隔7小时监测一次Connection(执行一个简单查询) 如果失败的话 就新建连接 如果成功就不需要做处理