HikariCP Postgresql 驱动程序声称不接受 JDBC URL

Posted

技术标签:

【中文标题】HikariCP Postgresql 驱动程序声称不接受 JDBC URL【英文标题】:HikariCP Postgresql Driver Claims to not accept JDBC URL 【发布时间】:2016-04-16 22:29:27 【问题描述】:

我已将我的应用程序推送到 cloudfoundry。但是,每次我连接到我的 postgresql/elephant sql 时,我都会收到此错误

 Driver org.postgresql.Driver claims to not accept JDBC URL jdbc:postgres://cwkqmdql:SsVqwdLxQObgaJAYu68O-8gTY1VmS9LX@pellefant.db.elephantsql.com:5432/cwkqmdql/

我有什么遗漏的吗?

【问题讨论】:

网址确实无效。如果cwkqmdql:SsVqwdLxQObgaJAYu68O-8gTY1VmS9LX 部分应该是用户名和密码,那么您不能这样指定它。请参阅手册以获取正确的 URL:jdbc.postgresql.org/documentation/94/connect.html @a_horse_with_no_name 我尝试将 spring.datasource.url 更改为此 jdbc:postgres://pellefant-01.db.elephantsql.com:5432/cwkqmdql 并且同样的错误仍然存​​在 【参考方案1】:

该 URL 存在一些问题,最新的 PSQL 驱动程序可能会抱怨。

    jdbc:postgres: 应替换为 jdbc:postgresql: 不要使用jdbc:postgresql://<username>:<passwor>...,而是使用用户参数:jdbc:postgresql://<host>:<port>/<dbname>?user=<username>&password=<password> 在某些情况下,您必须通过添加 sslmode=require 参数来强制 SSL 连接

所以你的网址应该是:

jdbc:postgresql://@pellefant.db.elephantsql.com:5432/cwkqmdql?user=cwkqmdql&password=SsVqwdLxQObgaJAYu68O-8gTY1VmS9LX

jdbc:postgresql://@pellefant.db.elephantsql.com:5432/cwkqmdql?user=cwkqmdql&password=SsVqwdLxQObgaJAYu68O-8gTY1VmS9LX&sslmode=require

我希望这会有所帮助。

【讨论】:

就我而言,我需要一个尾部正斜杠。喜欢jdbc:postgresql://db:5432/ 在 Heroku Postgres 上使用 Spring Boot 2 对我不起作用。 谢谢,是jdbc:postgre:/引起的,我换成jdbc:postgresql:/就好了 为什么@与主机名一起添加?就我而言,当我从主机名中删除“@”时它起作用了。 这个答案帮助我从本地机器连接到 Heroku Postgres【参考方案2】:

在我的例子中,它是在 java.properties 文件中用双引号定义属性

通过改变

jdbcUrl="url"

jdbcUrl=url

它再次起作用

【讨论】:

哎呀,这也是我的问题。谢谢 这也是问题所在。就我而言,混淆来自不同配置文件的不同语法(application.properties vs application.yml) 如果我使用 helm chart 创建秘密,并且在创建秘密时我们需要用引号将每个值括起来。然后在 applications.properties 中,我们注入 env var。【参考方案3】:

我遇到的问题是我在属性文件中为数据源 url 提供了双引号。

我所给予的

spring.datasource.url="jdbc:postgresql://localhost:5432/postgres"

给出url的正确方式是

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres

【讨论】:

【参考方案4】:

也有这个错误,但意识到这是因为我输入了 postgressql 代替 postgresql 在我的网址中

【讨论】:

【参考方案5】:

就我而言,两个配置文件的格式不同:

    application.propertiessrc/main/resources application.ymlsrc/test/resources

src/test/resources中的application.yml更改为application.properties后,问题已修复。

【讨论】:

以上是关于HikariCP Postgresql 驱动程序声称不接受 JDBC URL的主要内容,如果未能解决你的问题,请参考以下文章

PGPool 在 SpringBoot 应用程序中无法与 HikariCP 一起使用

HikariCP 未在 close() 上关闭连接(连接泄漏)

数据库故障后的 Hikari CP (Spring Boot) 连接恢复问题

无法获取 oracle 和 hikaricp 的驱动程序实例

HikariCP 连接池 - '活动' - 如何调试?

如何在 application.properties 文件中的 Spring Boot 应用程序中配置 HikariCP?