rds数据库SpringBoot启动报ERROR com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set 如何解决
时间: 2024-10-22 14:06:18 浏览: 37
云及数据库行业浅析共10页.pdf.zip
当Spring Boot应用启动时,如果Druid数据源配置中`testWhileIdle`属性设置为`true`(默认值),并且未设置`validationQuery`,会抛出错误提示,因为Druid需要一个验证查询来检查连接是否有效。
解决这个问题,你需要在Druid的数据源配置中设置一个`validationQuery`,这通常是一个简单的SQL语句,例如用于检查数据库连接是否活跃。例如:
```yaml
spring:
datasource:
druid:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
testWhileIdle: true
# 添加下面这行配置
validationQuery: SELECT 'x'
testOnBorrow: false
testOnReturn: false
```
这里的`validationQuery: SELECT 'x'`是一个示例,你可以替换为你实际数据库使用的简单SELECT语句。`testOnBorrow`和`testOnReturn`设置为`false`是为了避免频繁地对每一个获取和归还的连接都进行验证,仅在空闲连接检测时执行一次验证。
如果你不清楚你的数据库应该使用什么样的验证查询,可以查阅对应的数据库文档,找一个空闲时不会影响数据库状态的简单查询。
阅读全文