问题描述:

  使用springboot连接数据库,启动的时候报错:testWhileIdle is true, validationQuery not set。但是不影响系统使用,数据库等一切访问正常。

  application.properties数据源配置如下:

  spring.datasource.username=root
  spring.datasource.password=
  spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
  spring.datasource.initial-size=1
  spring.datasource.maximum-pool-size=10
  spring.datasource.connection-timeout=5000

问题分析:

  查了这句话的意思:空闲的时候进行检测是开启的,但是检测的查询语句没有设置。大致意思就是说,当数据库没有接收到请求时,会进行数据库连接检测,检查数据库是否还是连着的。检查数据库是否断开需要发送sql语句。报错是说这个sql语句没有设置。

  那么解决思路有两个:

    1、设置不进行空闲时连接检测。

    2、开启空闲时连接检测,并设置检测用的sql语句。

  先查了资料,说testWhileIdle默认是false的,这是竟然是true,整个代码搜索了一下,也没有见到设置testWhileIdle的地方,推测应该是版本不一样,新版本jar包里面默认设置为true。

  好吧,先不管这些,既然都是数据库的设置,那么应该可以在配置数据源的时候加上这些配置,网上搜索了配置的写法,如下:

  spring.datasource.test-while-idle=true
  spring.datasource.validation-query=SELECT 1

  但是发现还是不起作用,仍然报错。

  有些不可理解,同样是数据源的配置,为什么上面的连接url、用户名、密码可以生效,下面的就不生效呢?

  再次搜索答案,发现有介绍了:

  springboot1.4取消spring.datasource.type

  在新版本中,validationQuery没有自动注入,那么就需要手动声明datasource bean。至于怎么写,可以看上面的文章。

  主要是手动注入DruidDataSource,声明一个配置类,数据源各个值都注入进去,返回DruidDataSource。

  再启动,系统不报错了!

  最后查看了DruidDataSource源代码,

  public static final String DEFAULT_VALIDATION_QUERY = null;

  果然,DruidDataSource默认testWhileIdle=true,并且validationQuery设置为空。

总结:

  1、首先要理解错误,明白错误的意思。

  2、从错误出发,分析导致错误的原因,针对这些能找到哪些解决方法。

  3、再搜索资料,网上的资料都太乱了,版本不一致、环境不一样等有很多影响因素,需要一一进行实验。

  4、看源代码也是很不错的解决问题办法。

转载于:https://www.cnblogs.com/leanfish/p/9593636.html

springboot连接数据库报错testWhileIdle is true, validationQuery not set相关推荐

  1. 严重: maxIdle is deprecated,严重: testWhileIdle is true, validationQuery not set,Druid连接池连接MSQL报错处理

    JDK9  引发的血案 1.因为使用mysql-connector的依赖版本对应的mysql数据库冲突,mysql8需要使用8.0.11以上的高版本2.jdk9的反射本身存在BUG,会有warning ...

  2. SpringBoot项目报错解决:“Error starting ApplicationContext. To display the conditions report re-run ...”

    SpringBoot项目报错:Error starting ApplicationContext. To display the conditions report re-run your appli ...

  3. com.alibaba.druid.pool.DruidDataSource  : testWhileIdle is true, validationQuery not set

    2019-10-13 16:37:56.965 ERROR 8088 --- [on(6)-127.0.0.1] com.alibaba.druid.pool.DruidDataSource   : ...

  4. idea使用Database连接数据库报错ssm证书验证失败无法建立安全连接

    项目场景: idea使用Database连接数据库报错ssm证书验证失败无法建立安全连接 问题描述 [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 ...

  5. Springboot运行报错BeanCreationException

    项目场景: Springboot运行报错BeanCreationException: Error creating bean with name 问题描述: BeanCreationException ...

  6. SpringBoot启动报错:HikariPool-1 - Exception during pool initialization.解决办法

    SpringBoot启动报错:HikariPool-1 - Exception during pool initialization. 记一次Maven项目部署http访问mysql数据库过程中的问题 ...

  7. 【c语言 gcc9.1.0环境下编译报错】error: ‘true’ undeclared (first use in this function)

    问题 网上验证一个单链表是否有环的c语言demo,放到gcc9.1.0的环境下编译,发现编译报错: error: 'true' undeclared (first use in this functi ...

  8. springboot启动报错:Unregistering JMX-exposed beans on shutdown

    环境 1,maven 3.5.0 2,eclipse 4.7.1 3,spring boot 1.5.9.RELEASE springboot启动报错 按照spring 用户手册创建新的spring ...

  9. PLSQL Developer连接数据库报错ora-12514解决

    PLSQL Developer连接数据库报错ora-12514解决 就这个错误纠结了好几天了,现在已经完美解决.现在把具体解决思路及方法记录下来,希望能够帮助更多像我这样纠结的人,高手大神们跳过.不多 ...

最新文章

  1. POJ 2396 构造矩阵(上下流)
  2. java cindy_java枚举应用
  3. IDEA git修改远程仓库地址
  4. vs2005 pro 在浏览器查看下的一个问题!
  5. 大数据_Flink_数据处理_案例WorldCount_批处理版---Flink工作笔记0008
  6. nginx平滑升级至最新版的nginx-1.9.5
  7. SWMM与Python的那些事 (一)
  8. acer软件保护卡怎么解除_Acer软件保护卡使用说明资料
  9. 18. shell当中的until,until语法,无限循环,until示例
  10. mac mini u盘安装系统_如何制作U盘启动盘安装操作系统
  11. 数据处理奇技巧——hive篇
  12. 远心镜头与普通镜头拍摄工件孔径对比
  13. 两种依赖注入的类型是什么?
  14. 用于微信小程序的图文编辑器(富文本编辑器)
  15. BCI Competition 2008 – Graz dataset A个人翻译(附MATLAB安装BioSig)
  16. Java数据结构--Linkedlist
  17. 如何优雅的在ubuntu终端中使用复制粘贴
  18. c语言将两幅bmp格式图片拼接图片
  19. What's the difference between Atomic and Ordinary database engine
  20. 神经网络适用于分类问题的最后一层-Softmax和交叉熵损失介绍及梯度推导

热门文章

  1. Android 多屏幕适配 dp和px的关系
  2. .Net的后台服务技术有哪些?
  3. oracle 10g 学习之函数和存储过程(12)
  4. Flex 给PopUpButton 设置皮肤
  5. SDEBECMSrv服务
  6. 小目标检测的福音:Stitcher,简单又有效
  7. HandAI开源项目,拉近人和摄影的距离:基于手势识别完成不同的拍摄行为
  8. python的课程ppt_第4课 初识Python复习课程.ppt
  9. Java中注解学习系列教程-1
  10. Github1.3万星,迅猛发展的JAX对比TensorFlow、PyTorch