个人技术分享

springboot 项目连接 postgreps,启动时报错 org.postgresql.util.PSQLException: 错误: 关系 "dual" 不存在。

查阅资料后发现这是由配置文件中的配置 datasource-dynamic-druid-validationQuery 导致的

spring:
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        loginUsername: admin
        loginPassword: 123456
    dynamic:
      druid:
        initial-size: 5
        min-idle: 5
        maxActive: 20
        maxWait: 60000
        connectTimeout: 30000
        socketTimeout: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 1 from dual

每次启动项目时,Druid 数据库连接池会执行 validationQuery 属性值中的 sql 语句来测试连接是否可用,这个查询语句必须是至少返回一条数据的SELECT语句。每种数据库都有各自的验证语句。

然而 postgreps 没有 dual 表,因此项目启动连接数据库时会报错,修改一下validationQuery 属性值即可,改为:select version()。

几种常见数据库的validationQuery:

 

参考链接:

针对不同数据库的validationQuery_validationquery oracle如何配置properties-CSDN博客