You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postgresql Driver不兼容Heroku Postgres数据库URL问题求助

解决PostgreSQL Driver Claims to not accept JDBC URL错误

1. 修正Heroku DATABASE_URL格式

Heroku返回的DATABASE_URL前缀是postgres://,但PostgreSQL JDBC驱动要求的前缀是jdbc:postgresql://,必须做替换:

  • 错误示例:postgres://abc123:xyz456@ec2-12-34-56-78.compute-1.amazonaws.com:5432/d98765
  • 正确转换:jdbc:postgresql://abc123:xyz456@ec2-12-34-56-78.compute-1.amazonaws.com:5432/d98765

如果密码包含@、:、/这类特殊字符,必须做URL编码:
比如密码p@ssw:rd要转成p%40ssw%3Ard,可以用在线URL编码工具处理。

2. 升级PostgreSQL驱动版本

旧版本驱动可能对新URL格式支持不足,确保依赖用最新稳定版:

  • Maven配置:
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.6.0</version>
</dependency>
  • Gradle配置:
implementation 'org.postgresql:postgresql:42.6.0'

3. 核对数据源配置细节

在application.properties中确认以下配置无冲突:

spring.datasource.url=jdbc:postgresql://<转换后的完整URL>
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=<从DATABASE_URL提取的用户名>
spring.datasource.password=<编码后的密码>

注意:不要同时配置spring.datasource.url和spring.datasource.jdbc-url这类冲突属性。

4. 本地验证URL有效性

用IntelliJ自带的Database工具,输入转换后的JDBC URL、用户名和密码测试连接:

  • 如果连接失败,要么是URL转换错误,要么是本地网络无法访问Heroku数据库(可通过heroku pg:credentials:url获取临时本地可访问的凭证);
  • 如果连接成功,再检查应用配置是否有拼写错误。

5. 排查Spring Boot版本适配问题

若使用较旧的Spring Boot版本,可能存在驱动兼容性问题,尝试升级到最新稳定版(比如2.7.x或3.x系列)。

内容的提问来源于stack exchange,提问作者spiralspree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:01:01