无法远程连接Heroku的数据库(Java)

3

我正在尝试远程连接到我的数据库:

connection = DriverManager.getConnection(URL);

URL 的格式如下(所有 XXX 均从 Heroku 网站复制):

jdbc:postgresql://XXX:XXX/XXXX?sslmode=require&user=XXX&password=XXXXX

我遇到了以下问题:

org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "213......, SSL off

我曾经尝试执行(但它没有改变“SSL关闭”状态):

heroku config:set PGSSLMODE=require --app XXXXXX

根据早期文章的建议,我甚至将此添加到URL中(尽管我在Heroku文档中没有看到任何内容):

sslfactory=org.postgresql.ssl.NonValidatingFactory
1个回答

3

确保您使用的是PG JDBC客户端9.4或更高版本。您的JDBC连接URL需要包括URL参数:

sslmode=require

例如:

jdbc:postgresql://<host>:<port>/<dbname>?sslmode=require&user=<username>&password=<password>

更多信息请参见Heroku文档中的远程连接数据库


在我的情况下,更新postgresql的.jar文件是解决方案。 - user435421
既然你是关于Heroku的专家,为什么执行heroku config:set PGSSLMODE=require --app XXXXXX没有改变错误描述中的“SSL关闭”状态? - user435421
PGSSLMODE配置变量不会被数据库识别,因为它运行在一个隔离的容器中。同时,JDBC客户端https://github.com/pgjdbc/pgjdbc也不会遵循该配置变量。 - codefinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接