【问题标题】:Trying to connect postgresql heroku with play试图将 postgresql heroku 与 play 连接起来
【发布时间】:2016-11-07 20:54:37
【问题描述】:

我正在尝试将 heroku postgresql 与播放框架(版本 2.5.9)一起使用,但它不起作用...

build.sbt

libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaJpa,
"org.webjars" % "bootstrap" % "2.3.1",
"org.hibernate" % "hibernate-entitymanager" % "5.2.3.Final",
"postgresql" % "postgresql" % "9.1-901-1.jdbc4"
)

conf/application.conf

ebean.default = ["models.*"]
db.default.driver=org.postgresql.Driver
db.default.url="postgres://ambpfzhcrpupmx:PeSnt07zQFVWKQrsqcRd1GzW6I@ec2-54-227-245-197.compute-1.amazonaws.com:5432/d4i5fck68498ce"
default.username = hereMyUserNameFromHeroku
default.password = "hereMyPassNameFromHeroku"

我得到: Caused by: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "78.192.102.83", user "ambpfzhcrpupmx", database "d4i5fck68498ce", SSL off

我不明白为什么......

我正在尝试在我的网址末尾添加“?ssl = true”,但它也不起作用......我得到: Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

有人可以帮我吗?谢谢:)

【问题讨论】:

  • 您从数据库服务器获得什么证书?从您的 Heroku 应用程序的角度来看,您确定这是受信任的吗?如果没有,您可能需要将其添加到您的信任库中。

标签: postgresql heroku jdbc playframework


【解决方案1】:

首先,重置您的 Postgres 用户名和密码,因为您已公开发布它们,现在任何人都可以访问您的数据库。运行这个命令:

$ heroku pg:credentials DATABASE --reset

然后根据Play Framework documentation 更改您的conf/application.conf 以使用JDBC_DATABASE_URL 环境变量。

db.default.url=${?JDBC_DATABASE_URL}
db.default.username=${?JDBC_DATABASE_USERNAME}
db.default.password=${?JDBC_DATABASE_PASSWORD}

根本问题是您的数据库 URL 没有启用 SSL,并且您的 Postgres JDBC 依赖项太旧而无法自动打开。我建议更新到这个:

"org.postgresql" % "postgresql" % "9.4.1211"

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2013-05-10
    • 2014-12-05
    • 2020-04-02
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多