`
jxdiamond
  • 浏览: 104495 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

mysql超时设置using the Connector/J connection property 'autoReconnect=true' to avoid

 
阅读更多

com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

 

查了一下,原来是mysql超时设置的问题,如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat。

解决办法:

方法一:如果不用hibernate的话,则在 connection url中加参数: autoReconnect=true

jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&autoReconnectForPools=true
方法二:用hibernate的话, 加如下属性: 
        <property name="connection.autoReconnect">true</property>
        <property name="connection.autoReconnectForPools">true</property>
        <property name="connection.is-connection-validation-required">true</property>

方法三:要是还用c3p0连接池: 
        <property name="hibernate.c3p0.acquire_increment">1</property> 
        <property name="hibernate.c3p0.idle_test_period">0</property> 
        <property name="hibernate.c3p0.timeout">0</property>
        <property name="hibernate.c3p0.validate">true</property>

 方法四:最不好的解决方案

 使用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将自动断开该 连接,而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。

1.按照错误的提示,可以在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true& failOverReadOnly=false,不过并未起作用,使用的是5.1版本,可能真像网上所说的只对4之前的版本有效。

2.没办法,只能修改MySQL的参数了,wait_timeout最大为31536000即1年,在my.cnf中加入:

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

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

 

转自http://k0521klb.iteye.com/blog/1133342

分享到:
评论

相关推荐

    c3p0-0.9.5.2jar和mysql8.0.11jdbc

    autoReconnect=true&lt;/property&gt; &lt;property name="user"&gt;root&lt;/property&gt; &lt;property name="password"&gt;password&lt;/property&gt; &lt;property name="initialPoolSize"&gt;10&lt;/property&gt; &lt;property name="minPoolSize"&gt;10&lt;/...

    mysql-connector-java-5.1.5

    6. **配置参数**:MySQL Connector/J支持多种配置参数,如`useUnicode=true`、`characterEncoding=utf8`用于设置字符编码,`autoReconnect=true`用于确保断线后自动重连等。 7. **兼容性与版本**:5.1.5版本的MySQL...

    hibernate多数据库配置

    &lt;property name="connection.datasource"&gt;dataSource&lt;/property&gt; &lt;!-- 其他 Hibernate 配置信息 --&gt; &lt;/session-factory&gt; &lt;/hibernate-configuration&gt; ``` 在上面的配置中,我们使用 DynamicDataSource 作为 ...

    nacos插件-mysql-connector-java-8.0.19.zip

    《Nacos插件与MySQL Connector/J 8.0.19的深度理解与应用》 在现代企业级的分布式系统中,Nacos作为一款优秀的动态服务发现、配置管理和服务管理平台,扮演着至关重要的角色。而MySQL作为广泛使用的开源关系型...

    创建dbcp连接,dbcp(Spring)

    DBCP(Database Connection Pool)是Apache Commons项目中的一个数据库连接池组件,全称为Apache Commons DBCP。它允许开发者在应用程序中实现高效的数据库连接管理,通过复用已存在的数据库连接来减少每次请求时...

    基于SpringBoot的学生成绩管理系统.zip-7

    一.开发环境 IDEA + JDK8 + MySQL5.7 + navicate 二.技术栈 Springboot+Mybatis+layui 三....数据库地址url修改为 spring.datasource.url=jdbc:mysql://localhost:3306/score?...autoReconnect=true&use

    Spring3.0+Struts2.1+ Hibernate3.5融合步骤

    autoReconnect=true&useUnicode=true&characterEncoding=UTF8&lt;/property&gt; &lt;property name="hibernate.connection.username"&gt;root&lt;/property&gt; &lt;property name="hibernate.connection.password"&gt;root&lt;/property&gt; ...

    hibernate自动重新连接数据库proxool的使用

    例如,设置`hibernate.proxool.statistics`为`true`,可以开启统计信息,便于分析连接池的使用情况。 在应用运行过程中,如果检测到数据库连接断开,`Hibernate`会根据配置的`Proxool`参数尝试重新建立连接。这大大...

    Mysql JDBC Url参数说明

    MySQL JDBC URL(Java Database Connectivity Uniform Resource Locator)是Java应用程序连接MySQL数据库时使用的字符串,它包含了数据库连接所需的各项配置信息。这篇博文将详细解释MySQL JDBC URL的各个参数及其...

    mysql-connector-java-5.1.38.rar

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它提供了JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够方便地在Java应用中接入并操作MySQL数据库。`mysql-connector-java-5.1.38....

    OpenKM配置指南

    autoReconnect=true"/&gt; &lt;param name="schemaObjectPrefix" value="rep_"/&gt; &lt;param name="schema" value="mysql"/&gt; &lt;param name="user" value="openkm"/&gt; &lt;param name="password" value="123456"/&gt; &lt;/FileSystem...

    mysql-connector-java-5.1.6.jar

    3. **事务支持**:MySQL Connector/J支持JDBC的事务控制,包括`Connection.setAutoCommit()`、`Connection.commit()`和`Connection.rollback()`等方法,允许开发者在需要时启用或禁用自动提交,并处理事务的提交和...

    mysql-connector-java-3.0.12-production.zip

    MySQL Connector/J 3.0.12 是 MySQL 官方提供的用于 Java 应用程序连接 MySQL 数据库的驱动程序。这个压缩包包含了该版本的驱动程序及相关文件,为开发者提供了在 Java 平台上与 MySQL 数据库进行交互的能力。以下是...

    关于tomcat和mysql连接池问题的详解.docx

    在本文中,我们将深入探讨关于Tomcat和MySQL连接池问题的详解,特别关注Tomcat 5.5版本中的常见问题和解决方案。连接池是管理数据库连接的关键组件,它提高了性能并减少了资源消耗。 问题一:Cannot create JDBC ...

    mysql-connector-java-5.1.46.zip

    MySQL Connector/J是MySQL数据库与Java应用程序之间的桥梁,它是一个实现了JDBC(Java Database Connectivity)标准的驱动程序,允许Java开发者在Java应用中访问和操作MySQL数据库。`mysql-connector-java-5.1.46....

    关于MySQL的wait-timeout连接超时问题报错解决方案.pdf

    4. 考虑使用 Connector/J 连接属性:在使用 Hibernate 进行数据库操作时,可以考虑使用 Connector/J 连接属性,例如 autoReconnect=true,来避免连接超时问题。 5. 及时释放连接:在使用完毕连接后,需要及时释放...

    mysql-connector-java

    MySQL Connector/J,通常被称为mysql-connector-java,是MySQL官方提供的用于Java应用程序与MySQL数据库进行连接的JDBC(Java Database Connectivity)驱动程序。它是Java开发者在Java应用中与MySQL数据库交互的关键...

    quartz在Spring中的配置

    useUnicode=true&characterEncoding=UTF-8&autoReconnect=true jdbc.username=root jdbc.password=kfs cpool.checkoutTimeout=5000 cpool.minPoolSize=10 cpool.maxPoolSize=25 cpool.maxIdleTime=7200 cpool....

    bbs论坛源码jsp版

    useUnicode=true&characterEncoding=GB2312&autoReconnect=true jdbc.username.mysql=root jdbc.password.mysql=root 3、 Web容器:tomcat6.x 4、 页面访问路径: 论坛首页: http://localhost:8080/bbs 后台管理...

Global site tag (gtag.js) - Google Analytics