繁体   English   中英

玩!框架 - 无法连接到数据库

[英]Play! framework - Cannot connect to database

这是我在尝试连接到本地postgresql db时遇到的错误:

无法连接数据库[默认]

这是数据库配置。 我确信没有拼写错误(胖手指错误)

db.default.url="postgres://localhost:5432/myproject/"
db.default.user="postgres"
db.default.pass="mypassword"
db.default.driver="org.postgresql.Driver"
db.default.initSQL="SELECT 1" 

问题出在哪儿? 使用pgAdmin我可以轻松连接
PS
我正在使用ubuntu。 我注意到为了改成postgres用户
我必须使用“su” ,否则它无法更改当前用户。
这与游戏有关! 无法连接我的数据库?

谢谢

您的设置中可能存在两个错误或至少可疑的问题。

第一: postgres:... URL语法不是普通的JDBC URL。 PostgreSQL JDBC驱动程序无法理解此格式。 看到类似问题的答案

第二:您正在尝试使用PostgreSQL超级用户帐户进行播放。 超级用户帐户应用于管理工作,而不能用于“正常”工作。 特别是对于通过某些webfrontend包含对DB的公共访问的工作。 任何SQL注入攻击都会为攻击者提供数据库的金钥匙 - 包括一次性破坏整个数据库集群或将任何后门安装到数据库服务器中的核心攻击。

所以我建议您创建一个在Play中配置的新用户! 设置。

也就是说:在Ubuntu上没有设置postgres用户的默认密码。 此设置允许仅从同一OS用户登录DB 用户 如何解决这个问题在这个答案中解释。

如果这两个提示没有帮助:您引用的错误非常模糊。 某处 必须有更详细的错误日志。 请找到它们并使用“编辑”按钮将它们附加到您的问题中。

这不是您的问题的直接答案,但我有相同的错误消息,并通过谷歌来到这里。 使用Scala Play 2.3,我有

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://127.0.0.1:5432/noob_development"
db.default.logStatements=true

这需要

db.default.driver="org.postgresql.Driver"
db.default.url="jdbc:postgresql://127.0.0.1:5432/noob_development"
db.default.logStatements=true

我不小心把驱动器名称的引号留了下来。 现在它完美无缺。

这是我的conf,它有效:

db.default.url="jdbc:postgresql://127.0.0.1:5432/dbname"
db.default.driver="org.postgresql.Driver"

只需在db.default.url postgresql之前添加jdbc: db.default.url

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM