通过Intellij IDEA连接到Postgres Heroku DB

时间:2015-06-04 03:51:55

标签: postgresql ssl heroku intellij-idea

我一整天都试图连接到我的postgres数据库。我可以通过pgAdmin来实现,但是我无法通过mySQLWorkbench进行连接以进行迁移,也无法通过Intellij IDEA进行连接。我们开始使用Intellij但是......

所以,当我尝试通过IntelliJ连接时,我得到了这个......

Connection to Sinthetics failed
java.sql.SQLException: SSL error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我认为这意味着我需要证书,因为我使用的是SSL(因为它是postgres / heroku)。所以,我像我这样运行我方便的InstallCert ......

java InstallCert ec2-54-243-235-169.compute-1.amazonaws.com:5432

然后回复:

Loading KeyStore /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/cacerts...
Opening connection to ec2-54-243-235-169.compute-1.amazonaws.com:5432...
Starting SSL handshake...

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:953)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
    at InstallCert.main(InstallCert.java:87)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.read(InputRecord.java:482)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
    ... 4 more
Could not obtain server certificate chain

那么为什么我不能获得这方面的证书,但它与pgAdmin连接没有问题!?有人有线索吗?

3 个答案:

答案 0 :(得分:30)

要在Intellij Idea中使用Heroku上的PostreSQL添加新连接,您需要:

  1. 数据库工具窗口/新建/数据源/ PostreSQL

  2. https://postgres.heroku.com/databases

  3. 上找到您找到的主机,端口,数据库,用户,密码
  4. 转到“高级”标签并输入:

    • ssl:true
    • sslfactory:org.postgresql.ssl.NonValidatingFactory
  5. 利润。

答案 1 :(得分:3)

使用data.heroku.com的主机,端口,数据库,用户,密码创建数据库

转到“高级”标签,然后放入:

  • ssl: true
  • sslfactory: org.postgresql.ssl.NonValidatingFactory

如果出现这样的错误:

  

与xxx.amazonaws.com的连接失败。 [08006]主机名   主机名验证者无法验证xxx.amazonaws.com   PgjdbcHostnameVerifier

只需将此值也放入“高级”标签:

  • sslmode: verify-ca

答案 2 :(得分:0)

我遇到同样的问题,降级为Postgre Driver的次要版本对我有用。

PostgreDriverSettings:

PostgreDriverSettings

相关问题