Communications link failure的解决办法

使用Connector/J连接MySQL数据库,程序运行较长时间后就会报以下错误:

Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was ***  millisecond ago。

其中错误还会提示你修改wait_timeout或是使用Connector/J的autoReconnect属性避免该错误。

后来查了一些资料,才发现遇到这个问题的人还真不少,大部分都是使用连接池方式时才会出现这个问题,短连接应该很难出现这个问题。这个问题的原因:

MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

修改MySQL的参数,wait_timeout最大为31536000即1年,在my.cnf中加入:

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

重启生效,需要同时修改这两个参数。

时间: 2024-11-05 16:28:16

Communications link failure的解决办法的相关文章

mysql 5.1超过默认8小时空闲时间解决办法(错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure)

报错: MySQL第二天早上第一次连接超时报错, com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 原因: 上述问题是由mysql5数据库的配置引起的.mysql5将其连接的等待时间(wait_timeout .interactive_timeout)缺省为8小时.在其客户程序中可以这样来查看其值: mysql> show global variables like 'wait

解决:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure(真实有效)

数据库连接失败 一.例如我在SpringBoot项目中使用了阿里的数据库连接池Driud. 有次在启动的时候,会报这样的错: Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet successfully received from the server was 319 milliseconds ago. The last packet s

Mysql Communications link failure 问题的解决

问题现象 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. I spend some days to solve this

异常解决com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

21:37:08,815 DEBUG BasicResourcePool:1831 - An exception occurred while acquiring a poolable resource. Will retry.com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

1.错误描述 [ERROR:]2015-11-05 14:37:52,558 [插入失败] report.service.impl.ReportServiceImpl org.hibernate.exception.JDBCConnectionException: error executing work at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegat

MySQL异常【数据库断开连接】:Communications link failure

一.异常信息以及解决办法        com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure  org.springframework.transaction.CannotCreateTransactionException:      Could not open JDBC Connection for transaction;      nested exception isco

Java连接MySQL报错:CommunicationsException: Communications link failure

现象: 报错:Exception in thread "main" com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 解决办法: 更换 mysql-connector-java-8.0.11.jar 为 mysql-connector-java-8.0.16.jar, 下载位置:https://mvnrepository.com/artifact/mysql/mysql-c

数据库连接失败Communications link failure due to underlying exception!

(1)有今天遇到了这个问题:当使用Myeclipse中DB Browser连接mysql出现 Communications link failure due to underlying exception!的问题 服务是开启了的,使用sql命令也可以执行,但是过了一会就不可以连接就出现上边的问题: (2)赶紧百度了一下,百度上各路大神的方法主要是 a)由于mysql自带的连接时长的限制,当超过时间的时候mysql就会自动断开,解决方法,网上也有很多方法,这里不做解释: b) 本人的解决方法就是

MySQL:Communications link failure问题

项目在访问mysql数据库时,常会出现Communications link failure错误,具体貌似是一个空闲连接超过数据库设置的"wait_timeout",MySQL会将该个连接out掉,而mysql连接池还认为该连接是有效的(MySQL的wait_timeout设置的参数跟连接池设置的超时时间不一致,wait_timeout > 连接池所设置的时间),因此错误就出现了 网上看了一下各种方法,觉得比较靠谱的解决方法 第一 :在连接数据库的url上,添加参数 &a