美文网首页
Mysql 8小时的解决方案

Mysql 8小时的解决方案

作者: no才 | 来源:发表于2016-05-12 16:31 被阅读0次

程序报错信息

The last packet successfully received from the server was 34,132 milliseconds ago.  The last packet 
……

问题描述

连接池保留了连接,但是mysql数据库已经回收了连接

解决方案

  1. 程序连接池配置
    • 如果使用的是JDBC,在JDBC URL上添加?autoReconnect=true
jdbc:mysql://10.10.10.10:3306/mydb?autoReconnect=true
  • 如果是在Spring中使用DBCP连接池,在定义datasource增加属性validationQuery和testOnBorrow
<bean id="vrsRankDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${countNew.jdbc.url}" />
    <property name="username" value="${countNew.jdbc.user}" />
    <property name="password" value="${countNew.jdbc.pwd}" />
    <property name="validationQuery" value="SELECT 1" />
    <property name="testOnBorrow" value="true"/>
</bean>
  • 如果是在Spring中使用c3p0连接池,则在定义datasource的时候,添加属性testConnectionOnCheckin和testConnectionOnCheckout
<bean name="cacheCloudDB" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${cache.url}"/>
    <property name="user" value="${cache.user}"/>
    <property name="password" value="${cache.password}"/>
    <property name="initialPoolSize" value="10"/>
    <property name="maxPoolSize" value="${cache.maxPoolSize}"/>
    <property name="testConnectionOnCheckin" value="false"/>
    <property name="testConnectionOnCheckout" value="true"/>
    <property name="preferredTestQuery" value="SELECT 1"/>
</bean>
  1. 修改MySQL的参数.
    在/etc/my.cnf 添加
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000

相关文章

网友评论

      本文标题:Mysql 8小时的解决方案

      本文链接:https://www.haomeiwen.com/subject/lfqdrttx.html