[toc]
问题描述:如果一个连接超过8小时(默认值)没有去操作数据库的话,MySQL服务会自动断开改连接。导致在这个时间之后使用该连接去操作数据库就会出现连接异常的错误。
解决方式:
- 修改MySQL的“wait_timeout”、“interactive_timeout”两个属性(单位秒),但最大只能设置24天
- MySQL5版本之前可以在url添加参数“autoReconnect=true”
- 使用连接前测试连接的有效性,如: spring.datasource.test-on-borrow=true
- 定期使用连接池里的连接,如以下是c3p0连接池的配置
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="preferredTestQuery" value="SELECT 1"/> <property name="idleConnectionTestPeriod" value="18000"/> <property name="testConnectionOnCheckout" value="true"/> </bean>
- …...