it-swarm.com.de

Postgresql: Kennwortauthentifizierung für Benutzer "postgres" fehlgeschlagen

Ich habe PostgreSQL 8.4, Postgres-Client und Pgadmin 3 installiert. Die Authentifizierung für den Benutzer "postgres" für Konsolen-Client und Pgadmin ist fehlgeschlagen. Ich habe Benutzer als "postgres" und Passwort "postgres" eingegeben, weil es vorher funktioniert hat. Aber jetzt ist die Authentifizierung fehlgeschlagen. Ich habe es schon ein paar Mal ohne dieses Problem gemacht. Was soll ich machen? Und was passiert

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"
306
I159

Wenn ich mich richtig erinnere, hat der Benutzer postgres standardmäßig kein DB Passwort auf Ubuntu gesetzt. Das bedeutet, dass Sie sich nur mit dem Konto postgresBetriebssystembenutzer bei diesem Konto anmelden können.

Vorausgesetzt, Sie haben root Zugriff auf die Box, können Sie Folgendes tun:

Sudo -u postgres psql

Wenn dies mit einem database "postgres" does not exists-Fehler fehlschlägt, sind Sie höchstwahrscheinlich nicht auf einem Ubuntu- oder Debian-Server :-) In diesem Fall fügen Sie einfach template1 zum Befehl hinzu:

Sudo -u postgres psql template1

Wenn einer dieser Befehle mit einem Fehler psql: FATAL: password authentication failed for user "postgres" fehlschlägt, überprüfen Sie die Datei /etc/postgresql/8.4/main/pg_hba.conf: Es muss eine Zeile wie die folgende als erste Zeile ohne Kommentar vorhanden sein:

local   all         postgres                          ident

Bei neueren Versionen von PostgreSQL könnte ident tatsächlich peer sein. Das ist auch in Ordnung.

In der psql-Shell können Sie dem DB-Benutzerpostgres ein Passwort geben:

ALTER USER postgres PASSWORD 'newPassword';

Sie können die Shell psql verlassen, indem Sie Folgendes eingeben CtrlD oder mit dem Befehl \q.

Jetzt sollten Sie in der Lage sein, pgAdmin ein gültiges Passwort für den DB-Superuser zu geben, und es wird auch glücklich sein. :-)

606
A.H.

Die Antwort der Mitarbeiter ist korrekt, aber wenn Sie weiter automatisieren möchten, können Sie Folgendes tun:

$ Sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

Erledigt! Sie haben User = postgres und password = postgres gespeichert.

Wenn Sie kein Kennwort für den Benutzer postgres ubuntu haben, gehen Sie folgendermaßen vor:

$ Sudo passwd postgres

118
Diego

Das war frustrierend, die meisten der obigen Antworten sind korrekt, aber Sie müssen nicht erwähnen, dass Sie den Datenbank-Dienst neu starten müssen, bevor die Änderungen in der Datei pg_hba.conf wirksam werden.

also wenn du so etwas wie oben machst 

lokal alle postgres ident

dann restart als root (auf centos ist so etwas wie service service postgresql-9.2 restart) Jetzt sollten Sie auf die Datenbank als Benutzer postgres zugreifen können

$ psql psql (9.2.4) Geben Sie "help" ein, um Hilfe zu erhalten.

postgres = # 

Ich hoffe, dies fügt Informationen für neue Postgres-Benutzer hinzu

33
Miguel Pereira

Bearbeiten Sie die Datei pg_hba.conf, z. mit Sudo emacs /etc/postgresql/9.3/main/pg_hba.conf

Ändern Sie alle Authentifizierungsmethoden in trust. Ändern Sie das Unix-Passwort für den Benutzer "postgres". Starten Sie den Server neu. Melden Sie sich mit psql -h localhost -U postgres an und verwenden Sie das soeben eingestellte Unix-Passwort. Wenn es funktioniert, können Sie die Datei pg_hba.conf auf die Standardwerte zurücksetzen.

14
nottinhill

Wenn Sie versuchen, die Postgres-Shell als Postgres-Benutzer anzumelden, können Sie die folgenden Befehle verwenden.

zu postgres benutzer wechseln

# su - postgres

loggen Sie sich in psql ein

# psql

Hoffentlich hilft das

11
geekgugi

Versuchen Sie, den Parameter -W nicht zu verwenden, und lassen Sie das Kennwort leer. Manchmal wird der Benutzer ohne Kennwort erstellt.

Wenn dies nicht funktioniert, setzen Sie das Passwort zurück. Es gibt mehrere Möglichkeiten, dies zu tun, aber dies funktioniert auf vielen Systemen:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
10
Francisco Puga

Für diejenigen, die es zum ersten Mal verwenden und keine Informationen über das Kennwort haben, können sie die folgenden Schritte ausführen (vorausgesetzt, Sie befinden sich auf Ubuntu):

  1. Öffnen Sie die Datei pg_hba.conf in /etc/postgresql/9.x/main.

     Sudo vi pg_hba.conf 
    

    2.edit die untere Zeile 

     local   all             postgres                                peer
    

    zu

     local   all             postgres                                trust
    
  2. Starten Sie den Server neu

      Sudo service postgresql restart
    
  3. Schließlich können Sie sich ohne Passwort anmelden, wie in der Abbildung gezeigt. Finally you can login without need of a password as shown in the figure

Ref. Hier für mehr Info

8
Jose Kj

Als Faustregel gilt: SIE MÜSSEN NIEMALS EIN PASSWORT FÜR DEN POSTGRÜNDER NUTZEN .

Wenn Sie einen Superuser-Zugriff von pgAdmin benötigen, erstellen Sie einen anderen Superuser. Auf diese Weise können Sie, wenn die Anmeldeinformationen für diesen Superbenutzer gefährdet sind, immer den aktuellen Datenbankhost verwenden und den Superbenutzer manuell löschen 

Sudo -u postgres -c "DROP ROLE superuser;"
2
ardilgulez

ich hatte ein ähnliches Problem . Ubuntu ließ mich in der Konsole mit einem beliebigen Kennwort für den Superuser einloggen. Außer, wenn ich mit -h localhost im Befehl psql line verbunden bin.

Ich beobachtete auch, dass "localhost: 8080/MyJSPSiteLogIn" - zeigte: Fatal: Autentication-Fehler mit Benutzer "user".

pg_hba.conf war in Ordnung.

Ich stellte fest, dass zwei Versionen von Postgres im selben Dienst ausgeführt wurden.

Gelöst - Deinstallation der Inutil-Version.

0
David Uvm

Ich wollte nur hinzufügen, dass Sie auch prüfen sollten, ob Ihr Passwort abgelaufen ist.

Siehe Postgres-Kennwortauthentifizierung schlägt fehl für Details.

0
Jörg

Hier sind einige Kombinationen, die ich versucht habe, mich anzumelden:

# login via user foo
psql -Ufoo -h localhost

Sudo -u postgres psql postgres

# user foo login to postgres db
psql -Ufoo -h localhost -d postgres
0
tokhi