PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Impossible de se connecter à la base de données (PostgreSQL) [par défaut]

Donc, la réponse définitive est :

Tout d'abord, il y a une erreur dans l'URL de la base de données, ce devrait être db.default.url="jdbc:postgresql://localhost:5432/playdb" comme chabeee l'a souligné . C'est le seul format correct pour db.default.url (donc pas de jdbc:postgresql://username:pasword:localhost/dbname ou similaire, comme je l'ai vu suggérer ailleurs).

Deuxièmement, plus délicat, il y a un bogue dans le pilote comme Salem l'a souligné et la solution consiste à ajouter db.default.hikaricp.connectionTestQuery = "SELECT 1" à application.conf .
Cependant, ce bogue est corrigé (enfin, cette solution de contournement est implémentée) dans les versions plus récentes que 9.1-903 . Le hic, c'est qu'après la version 9.1-901 postgresql a changé son groupID dans les dépôts et maintenant il est référencé par org.postgresql . Une meilleure solution que la solution de contournement serait de mettre à jour les dépendances vers "org.postgresql" % "postgresql" % "9.4-1206-jdbc4" (version actuelle , dépôt MVN ). Ajoutez la version jdbc appropriée au pilote PostgreSQL le plus récent (4 pour Java 6, 41 pour Java 7, 42 pour Java 8).

Mon dernier 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"

Et libraryDependencies dans build.sbt :

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

MISE À JOUR 2017 : Je viens seulement de remarquer que peu de temps après avoir écrit cette réponse, ils ont changé le schéma de version et supprimé le fragment -jdbc[code], en le remplaçant par .jre6, .jre7 ou rien, ce qui signifie apparemment qu'il est destiné à la dernière version de Java (je n'ai pas trouvé quoi que ce soit à l'appui de cette affirmation, mais cela fonctionne). Encore une fois en février 2017, ils modifient à nouveau le schéma de version et est passé de la version majeure 9 à 42, faisant de la version actuelle (au 17 juillet 2017) désignée par "org.postgresql" % "postgresql" % "42.1.3" (ou, en conséquence, "org.postgresql" % "postgresql" % "42.1.3.jre7" / "org.postgresql" % "postgresql" % "42.1.3.jre6" )