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.properties
在src/main/resources
application.yml
在src/test/resources
将src/test/resources
中的application.yml
更改为application.properties
后,问题已修复。
【讨论】:
以上是关于HikariCP Postgresql 驱动程序声称不接受 JDBC URL的主要内容,如果未能解决你的问题,请参考以下文章
PGPool 在 SpringBoot 应用程序中无法与 HikariCP 一起使用
HikariCP 未在 close() 上关闭连接(连接泄漏)
数据库故障后的 Hikari CP (Spring Boot) 连接恢复问题
无法获取 oracle 和 hikaricp 的驱动程序实例
如何在 application.properties 文件中的 Spring Boot 应用程序中配置 HikariCP?