1

ich immer Fehler wie diese bekommen ...Play-Framework-PostgreSQL db.default.username säumigen auf Linux-Benutzernamen

app[web.1]: Configuration error: Configuration error[Cannot connect to database [default]] 
app[web.1]: at scala.collection.immutable.List.foreach(List.scala:381) 

app[web.1]: Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "lcnjgrwbmbffwv" 
app[web.1]: at play.core.StaticApplication.<init>(ApplicationProvider.scala:55) 
app[web.1]: at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:408) 
app[web.1]: at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29) 
app[web.1]: at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31) 
app[web.1]: at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21) 
app[web.1]: at org.postgresql.Driver.makeConnection(Driver.java:410) 
app[web.1]: at java.sql.DriverManager.getConnection(DriverManager.java:664) 
app[web.1]: at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363) 
app[web.1]: at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:240) 
app[web.1]: at java.sql.DriverManager.getConnection(DriverManager.java:247) 
app[web.1]: at org.postgresql.Driver.connect(Driver.java:280) 
app[web.1]: at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:416) 
app[web.1]: at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120) 
app[web.1]: at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) 
app[web.1]: ... 18 more 
heroku[web.1]: Process exited with status 255 

Nicht nur in Heroku, aber wenn ich meine Play-App mit einem Benutzer, deren Namen ausgeführt ist anders als der Standardbenutzername in der Datenbank.

My Play Framework "application.conf" das ist wie ...

db.default.username="nameOfDatabaseUser" 
db.default.password="passOfDatabaseUser" 
db.default.driver=org.postgresql.Driver 
db.default.url="jdbc:postgresql://urlofdatabase:5432/name_of_database" 

Hier ist das Ding. Wenn mein Terminalbenutzer "nameOfDatabaseUser" heißt, funktioniert er. Wenn mein Terminalbenutzer jedoch einen anderen Namen hat, stellt er eine Verbindung mit der Datenbank als Name des aktuellen Linux-Terminalbenutzers her.

Im obigen Fall scheint es, dass Heroku als Benutzer lcnjgrwbmbffwv zu verbinden versucht und es gab keine Benutzer lcnjgrwbmbffwv in der Datenbank.

Wie kann ich den Benutzernamen der Standarddatenbank angeben, damit er nicht meinen Terminalbenutzernamen verwendet?

Antwort

0

Der richtige Schlüssel zum Angeben des Benutzers ist db.default.user, nicht db.default.username.