我正在尝试使用带有播放框架(版本2.5.9)的heroku postgresql,但它不起作用...
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
任何人都可以帮助我PLZ?谢谢:))
答案 0 :(得分:0)
首先,重置您的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"