2012-12-26 9 views
11

I postgresql 9.2 auf Linux (Kubuntu) und der letzten Version von pgadmin3 installiert haben, aber wenn ich sie schließe ich habe diesen Fehler:pgAdmin gibt mir den Fehler: kein Passwort geliefert

ist ein Fehler aufgetreten: Fehler beim Verbinden mit dem Server: fe_sendauth: kein Passwort angegeben

Was kann ich tun?

Ich habe auch Tomcat für meine Webanwendung in Java konfiguriert. Tatsächlich arbeitete postgresql, bevor ich meine Anwendung ausprobierte.

+0

Haben Sie versucht * das angeforderte Passwort * zu liefern? –

+3

Mein Passwort ist leer, also habe ich gerade eingegeben, als die Anfrage kam. – DarkCoffee

+1

Können Sie versuchen, von der Kommandozeile aus zu verbinden? '$ psql -U -h ' Sie können die -h weglassen, wenn Sie mit Unix-Domain-Sockets verbinden möchten. – Eelke

Antwort

8

Ob ein Passwort erforderlich ist, hängt von Ihren Einstellungen in pg_hba.conf ab. Und es gibt verschiedene Möglichkeiten, wie Sie sich verbinden können - verschiedene Einstellungen in pg_hba.conf können zutreffen.

Ich zitiere die mit pgAdmin verschifft Hilfe für das Feld „Host“ in der Verbindung („Server“) Einstellungen:

The host is the IP address of the machine to contact, or the fully qualified domain name. On Unix based systems, the address field may be left blank to use the default PostgreSQL Unix Domain Socket on the local machine, or be set to an alternate path containing a PostgreSQL socket. If a path is entered, it must begin with a “/”. The port number may also be specified.

Wenn Sie eine Verbindung über Unix, die Regeln für „lokalen“ Buchse gilt. Während bei der Verbindung über TCP/IP "Host" (oder "Hostssl") Regeln gilt.

Wenn Sie eine Zeile wie diese an der Spitze Ihrer pg_hba.conf Datei haben:

local all  all  peer 

oder:

local all  all  ident 

.. dann können Sie lokal ohne Passwort an, wenn Sie Systembenutzer ist "postgres" und Ihr Datenbankbenutzer ist auch "postgres".

+2

I changhed
# "local" ist für Verbindungen Unix-Domain-Socket nur
lokalen alle alle Peer # IPv4 lokale Verbindungen: Host alle alle 127.0.0.1/32 Vertrauen
# IPv6 lokale Verbindungen:
Host alle alle :: 1/128 Vertrauen
und es funktioniert! Vielen Dank!! – DarkCoffee

+0

@DarkCoffee: Ich nehme an, Sie sind sich bewusst, dass die "Trust" -Einstellung unsicher ist. –

4

Ich weiß, das ist Frage ist Jahre alt, aber ich lief in das gleiche Problem heute und habe eine Lösung, die trust in einer begrenzten, aber nützliche Weise verwendet.

Wie in vielen Entwicklungsläden, wenn die Entwickler ein QA postgres Passwort brauchen, schreien sie es einfach, senden es, mailen es, schreiben es auf ihre Stirn, etc. Und ich bin wie, "Das ist wirklich schlimm. Ich muss einen Weg finden, PKI hier zu verwenden. " Wir verwenden auch pgAdmin3.

Zuerst eine Zeile wie diese zu Ihrem pg_hba.conf hinzufügen, wo dev den Benutzer für die Entwickler in Ihrem Shop steht: auf der

host all dev 127.0.0.1/32 trust

Tropfen der Entwickler öffentlichen Schlüssel in ihren authorized_keys Ordner Datenbankserver. Jetzt haben sie ssh in den Server mit dem -L Flagge mit einem Befehl ähnlich dem folgenden:

ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104

Dies ermöglicht es, die Postgres-Port zu verwenden, als ob es localhost wurden. Natürlich, ersetzen Sie den Schlüssel, Server und stellen Sie sicher, dass zu einem offenen Port lokal zugeordnet werden (wenn Sie eine lokale Postgres ausgeführt wird, ist es wahrscheinlich an 5432 gebunden). Ich benutze eine ziemlich ausführliche Flagge, damit ich problemlos alle SSH-Probleme beheben kann.

Öffnen Sie ein weiteres Terminal und geben Sie diesen Befehl ein:

psql -h 127.0.0.1 -U dev -p 5432

Sie Zugriff auf die Datenbank haben sollte und nie nach einem Passwort gefragt werden, was ich denke, ist groß, denn sonst werden die Devs nur der Verzicht auf Passwort mit wenig Rücksicht auf die Sicherheit, vorbei wie Halloween Süßigkeiten.

Ab sofort fordert PgAdmin3 Sie immer noch zur Eingabe eines Passworts auf, auch wenn es - ganz normal - nicht gebraucht wird. Aber andere Postgres-GUIs werden nicht. Versuchen Sie es mit Postico. Es ist in der Beta, funktioniert aber großartig.

Ich hoffe, diese Antwort hilft jedem wie mir, die lieber PKI für postgres auth verwenden würde, anstatt Passwörter willy-nilly.