Verbinden Sie sich als Benutzer ohne Passwort des Postgresql 8.4 über JDBC
Ich versuche, eine Verbindung zu einem PostgreSQL
8,4 DB in Ubuntu 10.10 über den JDBC-Treiber. Ich bin die Verbindung über jdbc:postgresql:localhost:5433/dbname
weil PostgreSQL läuft auf einem nicht-Standard-port 5433 also ich habe den port angeben.
Hab ich schon bearbeitet meine postgresql.conf
zu setzen listen_addresses = "*"
. Ich verstehe, dass auch wenn es localhost ist, ist es immer noch mit TCP/IP-Verbindung über JDBC.
Mein problem ist, dass ich einen Benutzer erstellt, ohne ein Passwort. Wenn ich nicht geben Sie ein Passwort mit DriverManager.connect(url)
es Fehler anzeigt, dass ich brauche, um geben Sie ein Kennwort für die Authentifizierung. Jedes Passwort ich versuche, einschließlich der leeren Zeichenfolge, scheitert die Authentifizierung mit der Datenbank.
Wie kann ich die verbinden?
Bearbeiten:
Wenn Sie die Verbindung über falschen port, der Fehler ist : PSQLException: Connection refused. Überprüfen Sie, dass der hostname und port korrekt sind und dass der postmaster ist das akzeptieren von TCP/IP-verbindungen. Beim Versuch, eine Verbindung auf den richtigen Anschluss, ich bin immer PSQLException: FATAL: password authentication failed for user "Benutzer". Dies ist so zu beseitigen, dass die akzeptierte Antwort unten.
- Die vollständige, genaue Fehlermeldung und stack trace. Dein Titel sagt "connection refused", aber Ihr text sagt, "es Fehler, die ich brauche, um geben Sie ein Kennwort für die Authentifizierung". Diese sind völlig verschiedene Dinge; im letzteren Fall ist eine erfolgreiche TCP/IP-Verbindung wird hergestellt, dann Authentifizierung, wird abgelehnt. Aus der Beschreibung sieht es wie Sie die Verbindung verweigerte, wenn Sie eine Verbindung zu dem Standard-port 5432, da Pg läuft auf port 5433, aber Ihrem eigentlichen problem nichts zu tun mit dem connection refused Fehler und alles, was mit auth. Auch: PostgreSQL 8.8? 8.4?
- Hier finden Sie Versionen von PostgreSQL, die tatsächlich vorhanden sind, "8.8" ist nicht unter Ihnen.
- Craig, ich bitte um Entschuldigung, ich bin auf posgres 8.4. Für meine Fehler, ja, ich erhielt unterschiedliche Fehler je nach Hafen. Es scheint, ich bin in der Tat auf 5433. Als ich versucht einen anderen port, ich war immer ein connection refused, das ist mehr ein Netzwerk-problem (falscher port), wie Sie implizieren. Ich weiß, dass in SQLServer manchmal, der Fehler ist Recht allgemein und ein Authentifizierungs-Fehler bedeutet nicht unbedingt, dass der angegebene DB vorhanden ist, oder kann in der Tat ein Problem mit Berechtigungen.
- Sie werden froh zu wissen, dass PgJDBC in der Regel nicht haben, dass Problem dann 🙂 . Fehler sind in der Regel ziemlich spezifische, vor allem an der Verbindung/auth Probleme, und auch die Fehlermeldung aus dem backend, wenn es eins war.
- Kannst du bitte Bearbeiten Sie zum hinzufügen der eigentliche Fehler, den Sie bekommen von PgJDBC, damit andere mit dem gleichen problem finden das später?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
pg_hba.conf
erforderlich festgelegtmd5
- Authentifizierung, und der Benutzer hat kein Passwort, keine Authentifizierung erfolgen kann.Abwechselnd, verwenden Sie
ident
oder (für localhost nur, unsicher)trust
- Authentifizierung für Benutzer/db-combo inpg_hba.conf
wenn Sie wirklich müssen kein Kennwort haben. Dies ist in der Regel eine schlechte Idee, es ist viel besser, nur ein Passwort festlegen.Demo:
-h localhost
option, ich war nie in der Lage, um sich einzuloggen. Immer der Fehlerpsql: FATAL: Peer authentication failed for user "test"
. Bedeutet dies, dass es versucht, eine Verbindung zu einigen anderen host? Das macht keinen Sinn überhaupt.pg_hba.conf
. Das TL;DR ist, dass Sie eine andere Authentifizierungsmethode konfiguriert für lokale verbindungen über unix-sockets (local
- Modus), als Sie über tcp/ip-verbindungen (host
- Modus) inpg_hba.conf
zu Ihrer Datenbank zu verbinden: