Ich habe eine laufende lokale Instanz von PostgreSql auf einem Linux-Rechner. Wenn ich den psql
Befehl von der Shell verwende, kann ich mich ohne Probleme einloggen. Ich muss über den JDBC eine Verbindung zum PostgreSql herstellen, aber ich weiß nicht, was genau ich als url
Parameter an DriverManager.getConnection()
übergeben soll.Verbinden mit lokaler Instanz von PostgreSql mit JDBC
Es sollte mit jdbc:postgresql:
beginnen, aber was geht als nächstes?
Ich wurde von der Systemgruppe gesagt, dass eine Datenbank mit wie Benutzername erstellt wurde. z.B. wenn mein Benutzer jutky
ein db namens jutky
wurde erstellt, aber wenn ich versuche, eine Verbindung zu jdbc:postgresql:jutky
öffnen Ich erhalte eine Fehlermeldung
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jutky"
:(
Zusatzinfo
Als ich anmelden über die psql
Ich werde nicht zur Eingabe des Passworts aufgefordert, wenn ich versuche, mich über JDBC anzumelden, gebe ich eine leere Zeichenfolge als Passwort - ist es richtig, oder sollte ich null
oder etwas passieren?
Wenn ich tippe psql --help
in der Schale ich unter anderem sehen diese Zeile:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
So verstehe ich, dass ich zu PostgreSql über eine socket directory
verbinden, geht das etwas an die URL-Zeichenfolge in der JDBC wichtig?
EDIT
Erster Dank für die Antworten.
Zweitens: es ist nicht das erste Mal, dass ich JDBC benutze und insbesondere nicht das erste Mal, dass ich eine Verbindung mit der PostgreSql von JDBC, so kenne ich die allgemeinen Regeln und ich habe die Dokumentationen gelesen. Im beschriebenen Fall bin ich jedoch nicht sicher, wie genau ich die Verbindungszeichenfolge aufbauen soll, wenn die Instanz über die socket directory
läuft und welches Passwort ich bereitstellen soll. Denn wenn ich mich über die psql
anmelde, werde ich gar nicht nach einem Passwort gefragt.
Vielen Dank im Voraus.
Ich habe die Systemgruppe gebeten, dieses Problem zu überprüfen. Danke für den Hinweis. – jutky
Stellen Sie außerdem sicher, dass listen_address = '*' in postgresql.conf aktiviert ist. Andernfalls ist die TCP/IP-Verbindung überhaupt nicht möglich (was JDBC auch bei einer lokalen Verbindung verwendet) –
@jutky: Aktualisiert. – axtavt