严重: testWhileIdle is true, validationQuery not set 使用Druid连接池报错处理(springBoot)

出现这个错误时 application.yml 文件如下:

spring:
  datasource:
    driverClassName = com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url = jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf- 
          8&useSSL=false
    username = root
    password = root

需要增加以下配置:

spring:
  datasource:
    driverClassName = com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url = jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf- 
          8&useSSL=false
    username = root
    password = root

  #以下为新增
  druid:
    # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个,
    #注意: 设置为true后如果要生效,validationQuery参数必须设置为非空字符串
    test-on-borrow: false
    # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除. 
    #注意: 设置为true后如果要生效,validationQuery参数必须设置为非空字符串
    test-while-idle: true
    # 指明是否在归还到池中前进行检验,注意: 设置为true后如果要生效,
    #validationQuery参数必须设置为非空字符串
    test-on-return: false
    # SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.
    #如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录
    validation-query: select 1

这样重启就不会报错了。

 

你可能感兴趣的:(Druid)