sql >> Databasteknik >  >> RDS >> PostgreSQL

Spela Kan inte ansluta till (PostgreSQL) databas [standard]

Så det definitiva svaret är:

För det första är det ett fel i databasens webbadress, den ska vara db.default.url="jdbc:postgresql://localhost:5432/playdb" som chabeee påpekade . Det är det enda korrekta formatet för db.default.url (så ingen jdbc:postgresql://username:pasword:localhost/dbname eller liknande, som jag har sett föreslå på andra ställen).

För det andra, mer knepigt, är att det finns en bugg i drivrutinen som Salem påpekade och lösningen är att lägga till db.default.hikaricp.connectionTestQuery = "SELECT 1" till application.conf .
Den buggen är dock åtgärdad (ja, den lösningen är implementerad) i versioner som är nyare än 9.1-903 . Haken är efter version 9.1-901 postgresql ändrade sitt grupp-ID i repor och nu hänvisas till det av org.postgresql . En bättre lösning än lösningen skulle vara att uppdatera beroenden till "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (nuvarande version , MVNrepository ). Lägg till lämplig jdbc-version till den senaste PostgreSQL-drivrutinen (4 för Java 6, 41 för Java 7, 42 för Java 8).

Min sista application.conf :

db.default.driver="org.postgresql.Driver"
db.default.url="jdbc:postgresql://localhost/playdb" #the port is optional
db.default.username="luka"
db.default.password="test"

Och libraryDependencies i build.sbt :

libraryDependencies ++= Seq(
  jdbc,
  "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
  cache,
  javaWs
)

UPPDATERING 2017: Jag har först nu märkt att de inte långt efter att ha skrivit det här svaret ändrade versionsschema och tog bort -jdbc[code]-fragmentet och ersatte det med .jre6, .jre7 eller ingenting, vilket tydligen betyder att det är avsett för den senaste Java-versionen (jag har inte gjort det hittade något som stöder detta påstående, men det fungerar). Återigen i februari 2017 ändrade de versionsschemat igen och hoppade från huvudversion 9 till 42, vilket gjorde att den nuvarande versionen (från och med 17 juli 2017) betecknas med "org.postgresql" % "postgresql" % "42.1.3" (eller, följaktligen, "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )



  1. Django views.py Version av SQL Join with Multi Table Query

  2. lagra JSON-data i mysql

  3. Alternativ till array_agg()?

  4. Hur man delar upp en kommaseparerad sträng i Oracle