SpringBoot Druid Mysql数据库连接配置详记

17 篇文章 0 订阅
11 篇文章 3 订阅

背景

最近程序在服务器上运行,总是出现数据库连接断开的问题,常见异常如下,所以专门来规范一下配置。

2020-03-31 18:08:03.253 ERROR [DruidPooledStatement.java:357] CommunicationsException, druid version 1.1.10, jdbcUrl : jdbc:mysql://************:3306/test?autoReconnect=true&autoReconnectForPools=true&characterEncoding=UTF-8&allowMultiQueries=true, testWhileIdle true, idle millis 2328, minIdle 5, poolingCount 1, timeBetweenEvictionRunsMillis 30000, lastValidIdleMillis 2328, driver com.mysql.jdbc.Driver, exceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptionSorter
2020-03-31 18:08:03.255 ERROR [JdbcUtils.java:75] close connection error
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during rollback(). Transaction resolution unknown.

配置

 type: com.alibaba.druid.pool.DruidDataSource
 driver-class-name: com.mysql.jdbc.Driver
 initial-size: 5
 min-idle: 5
 max-active: 100
 max-wait: 10000
 validation-query: SELECT 1 FROM DUAL
 test-on-borrow: true
 test-on-return: true
 test-while-idle: true
 time-between-eviction-runs-millis: 60000
 min-evictable-idle-time-millis: 300000

配置说明

属性列说明
type指定连接池
driver-class-name数据库驱动类
initial-size初始化时建立物理连接的个数
min-idle最小连接数量
max-active最大连接数量
validation-query用来检测连接是否有效的sql,要求是一个查询语句,常用select ‘x’。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
test-on-borrow申请连接时执行validation-query检测连接是否有效
test-on-return归还连接时执行validation-query检测连接是否有效
test-while-idle申请连接的时候检测,如果空闲时间大于time-between-eviction-runs-millis,执行validationQuery检测连接是否有效。
time-between-eviction-runs-millis1) Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于min-evictable-idle-time-millis则关闭物理连接。2) est-while-idle的判断依据
min-evictable-idle-time-millis连接保持空闲而不被驱逐的最小时间

参考

DruidDataSource配置
DruidDataSource配置属性列表
DBCP连接属性
数据库连接池到底应该设多大
分析 “druid com.alibaba.druid.util.JdbcUtils Line:75 - close connection error” 出现的根源
解决Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset相关问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值