594 Stimmen

Passwort-Authentifizierung für Benutzer "postgres" fehlgeschlagen'.

Ich habe PostgreSQL 8.4, Postgres Client und Pgadmin 3 installiert. Die Authentifizierung für den Benutzer "postgres" ist sowohl beim Konsolen-Client als auch bei Pgadmin fehlgeschlagen. Ich habe als Benutzer "postgres" und als Passwort "postgres" eingegeben, weil es vorher funktioniert hat. Aber jetzt ist die Authentifizierung fehlgeschlagen. Ich habe es vorher ein paar Mal ohne dieses Problem gemacht. Was sollte ich tun? 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"

983voto

A.H. Punkte 60629

Wenn ich mich richtig erinnere, ist der Benutzer postgres hat keine DB Passwort, das bei Ubuntu standardmäßig eingestellt ist. Das bedeutet, dass Sie sich bei diesem Konto nur anmelden können, indem Sie die postgres OS-Benutzer Konto.

Angenommen, Sie haben root Zugriff auf das Feld können Sie tun:

sudo -u postgres psql

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

sudo -u postgres psql template1

Wenn einer dieser Befehle mit einer Fehlermeldung fehlschlägt psql: FATAL: password authentication failed for user "postgres" dann prüfen Sie die Datei /etc/postgresql/8.4/main/pg_hba.conf : Es muss eine solche Zeile als erste Nicht-Kommentar-Zeile vorhanden sein:

local   all         postgres                          ident

Für neuere Versionen von PostgreSQL ident tatsächlich sein könnte peer . Das ist auch in Ordnung.

Im Inneren der psql Shell können Sie die DB-Benutzer postgres ein Kennwort:

ALTER USER postgres PASSWORD 'newPassword';

Sie können die psql Shell durch Eingabe von 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 zufrieden sein :-)

225voto

Diego Punkte 2681

Die Antwort der Mitarbeiter ist richtig, aber wenn Sie weiter automatisieren wollen, können Sie das tun:

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

Erledigt! Sie haben Benutzer = postgres und Passwort = postgres gespeichert.

Wenn Sie kein Passwort für den Benutzer postgres ubuntu haben, tun Sie es:

$ sudo passwd postgres

50voto

Miguel Pereira Punkte 1701

Das war frustrierend, denn die meisten der oben genannten Antworten sind richtig, aber sie erwähnen nicht, dass Sie Folgendes tun müssen Neustart des Datenbankdienstes bevor die Änderungen in der Datei pg_hba.conf wirksam werden.

wenn Sie also die oben erwähnten Änderungen vornehmen:

local all postgres ident

puis Neustart als Root ( auf centos ist es etwas wie service service postgresql-9.2 restart ) jetzt sollten Sie in der Lage sein, als Benutzer postgres auf die Datenbank zuzugreifen

$psql
psql (9.2.4)
Type "help" for help.

postgres=# 

Ich hoffe, dass diese Informationen für neue Postgres-Benutzer hilfreich sind.

27voto

stevek-pro Punkte 13546

Bearbeiten Sie die Datei pg_hba.conf, für Debian auf /etc/postgresql/9.3/main/pg_hba.conf und für Red Hat/IBM-Derivate unter /var/lib/pgsql/9.4/data/pg_hba.conf

  • Ändern Sie alle Authentifizierungsmethoden in trust .
  • Linux-Passwort ändern für postgres Benutzer.
  • Server neu starten.
  • Anmeldung mit psql -h localhost -U postgres und verwenden Sie das soeben festgelegte Unix-Passwort.
  • Wenn es funktioniert, sollten Sie die pg_hba.conf Datei auf Werte mit md5 o ident Methoden und Neustart.

21voto

Jose Kj Punkte 2614

Diejenigen, die es zum ersten Mal benutzen und keine Informationen über das Passwort haben, können die folgenden Schritte befolgen (vorausgesetzt, Sie arbeiten mit Ubuntu):

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

     sudo vi pg_hba.conf 

    2. Bearbeiten Sie die folgende 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

Für weitere Informationen siehe hier

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X