Ich habe PostgreSQL 8.4, Postgres-Client und Pgadmin 3 installiert. Die Authentifizierung schlug für den Benutzer "postgres" sowohl für den Konsolen-Client als auch für Pgadmin fehl. 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"
Wenn ich mich richtig erinnere, hat der Benutzer postgres
unter Ubuntu standardmäßig kein DB-Passwort gesetzt. Das bedeutet, dass man sich nur mit dem OS user Konto postgres
anmelden kann.
Unter der Annahme, dass Sie root
-Zugang auf der Box haben, können Sie das tun:
sudo -u postgres psql
Wenn das mit der Fehlermeldung Datenbank "postgres" existiert nicht
fehlschlägt, dann sind Sie höchstwahrscheinlich nicht auf einem Ubuntu oder Debian Server :-) In diesem Fall fügen Sie einfach template1
an den Befehl an:
sudo -u postgres psql template1
Wenn einer dieser Befehle mit einer Fehlermeldung psql: FATAL: password authentication failed for user "postgres"
fehlschlägt, dann überprüfen Sie die Datei /etc/postgresql/8.4/main/pg_hba.conf
: Es muss eine Zeile wie diese als erste Nicht-Kommentar-Zeile vorhanden sein:
local all postgres ident
Bei neueren Versionen von PostgreSQL kann ident
auch peer
lauten. Das ist auch OK.
Innerhalb der psql
Shell können Sie dem DB Benutzer postgres
ein Passwort geben:
ALTER USER postgres PASSWORD 'newPassword';
Sie können die psql
-Shell durch Eingabe von CtrlD oder mit dem Befehl \q
verlassen.
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 :-)
Die Antwort der Mitarbeiter ist richtig, aber wenn Sie weiter automatisieren wollen, können Sie das tun:
$ sudo -u postgres psql -c "ALTER BENUTZER postgres PASSWORT 'postgres';"
**Erledigt! Sie haben User = postgres und Passwort = postgres gespeichert.
Wenn Sie kein Passwort für den Benutzer postgres ubuntu haben, tun Sie es:
$ sudo passwd postgres
Versuchen Sie, den Parameter -W nicht zu verwenden und das Passwort leer zu lassen. Manchmal wird der Benutzer ohne Kennwort erstellt.
Wenn das nicht funktioniert, setzen Sie das Passwort zurück. Es gibt mehrere Möglichkeiten, aber auf vielen Systemen funktioniert dies:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';