sql >> Database >  >> RDS >> PostgreSQL

Afspelen Kan geen verbinding maken met (PostgreSQL) database [standaard]

Het definitieve antwoord is dus:

Ten eerste is er een fout in de database-url, het zou db.default.url="jdbc:postgresql://localhost:5432/playdb" moeten zijn zoals chabeee aangaf . Het is het enige juiste formaat voor db.default.url (dus geen jdbc:postgresql://username:pasword:localhost/dbname of iets dergelijks, zoals ik op andere plaatsen heb zien suggereren).

Ten tweede, lastiger, is dat er een bug in de driver zit, zoals Salem opmerkte en tijdelijke oplossing is het toevoegen van db.default.hikaricp.connectionTestQuery = "SELECT 1" naar application.conf .
Die bug is echter opgelost (nou ja, die tijdelijke oplossing is geïmplementeerd) in recentere versies dan 9.1-903 . De vangst is, na versie 9.1-901 postgresql heeft zijn groupID in de repo's gewijzigd en er wordt nu naar verwezen door org.postgresql . Een betere oplossing dan de tijdelijke oplossing zou zijn om de afhankelijkheden bij te werken naar "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (huidige versie , MVNrepository ). Voeg de juiste jdbc-versie toe aan het meest recente PostgreSQL-stuurprogramma (4 voor Java 6, 41 voor Java 7, 42 voor Java 8).

Mijn laatste 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"

En libraryDependencies in build.sbt :

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

UPDATE 2017: Ik heb nu pas gemerkt dat ze niet lang na het schrijven van dit antwoord het versieschema hebben gewijzigd en het -jdbc[code]-fragment hebben verwijderd en vervangen door .jre6, .jre7 of niets, wat blijkbaar betekent dat het bedoeld is voor de nieuwste Java-versie (ik heb niet iets gevonden dat deze bewering ondersteunt, maar het werkt). In februari 2017 hebben ze opnieuw het versieschema opnieuw gewijzigd en sprong van hoofdversie 9 naar 42, waardoor de huidige versie (vanaf 17 juli 2017) wordt aangeduid met "org.postgresql" % "postgresql" % "42.1.3" (of, dienovereenkomstig, "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )



  1. Hoe maak je een veilige mysql voorbereide verklaring in php?

  2. Hoe te zoeken of het hele woord bestaat in een string in Postgres

  3. Grote objecten van PostgreSQL modelleren in Rails

  4. MySQL-fout #2014 - Opdrachten lopen niet synchroon; je kunt deze opdracht nu niet uitvoeren