美文网首页
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