簡體   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