mysql连接丢失:The last packet successfully received from the server, 自动重连

如果使用的是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>
    <property name="url" value="${countNew.jdbc.url}"></property>
    <property name="username" value="${countNew.jdbc.user}"></property>
    <property name="password" value="${countNew.jdbc.pwd}"></property>
    <property name="initialSize" value="10"></property>
    <property name="testWhileIdle" value="true"></property>
    <property name="testOnBorrow" value="true"></property>
    <property name="testOnReturn" value="false"></property>
    <property name="validationQuery" value="select 1"></property>
    <property name="timeBetweenEvictionRunsMillis" value="-1"></property>
    <property name="numTestsPerEvictionRun" value="3"></property>
    <property name="minEvictableIdleTimeMillis" value="1800000"></property>
</bean>

如果是在Spring中使用c3p0连接池,则在定义datasource的时候,添加属性testConnectionOnCheckin和testConnectionOnCheckout,如:

<bean name="cacheCloudDB" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"></property>
    <property name="jdbcUrl" value="${cache.url}"></property>
    <property name="user" value="${cache.user}"></property>
    <property name="password" value="${cache.password}"></property>
    <property name="initialPoolSize" value="10"></property>
    <property name="maxPoolSize" value="${cache.maxPoolSize}"></property>
    <property name="testConnectionOnCheckin" value="false"></property>
    <property name="testConnectionOnCheckout" value="true"></property>
    <property name="preferredTestQuery" value="SELECT 1"></property>
</bean>

如果使用的是Mybatis,

    <!--鉴权连接-->
    <bean id="userSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
        <property name="driverClassName">
            <value>${user.source.driverClassName}</value>
        </property>
        <property name="url">
            <value>${user.source.url}</value>
        </property>
        <property name="username">
            <value>${user.source.username}</value>
        </property>
        <property name="password">
            <value>${user.source.passwd}</value>
        </property>
        <property name="MaxActive">
            <value>255</value>
        </property>
        <property name="minIdle">
            <value>1</value>
        </property>
        <property name="maxIdle">
            <value>2</value>
        </property>
        <property name="MaxWait">
            <value>120000</value>
        </property>
        <property name="initialSize" value="10" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="true" />
        <property name="testOnReturn" value="false" />
        <property name="validationQuery" value="select 1" />
        <property name="timeBetweenEvictionRunsMillis" value="-1" />
        <property name="numTestsPerEvictionRun" value="3" />
        <property name="minEvictableIdleTimeMillis" value="1800000" />
    </bean>

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Java分类目录。将固定链接加入收藏夹。