1225 Stimmen

Fehlermeldung: Peer-Authentifizierung fehlgeschlagen für Benutzer "postgres", beim Versuch, pgsql mit Rails zum Laufen zu bringen.

Ich bekomme den Fehler:

FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer "postgres"

wenn ich versuche, PostgreSQL mit Rails zu verwenden.

Hier ist meine pg_hba.conf, meine Datenbank.yml und ein Dump des kompletten Traces.

Ich habe die Authentifizierung in pg_hba auf md5 geändert und verschiedene Dinge ausprobiert, aber nichts scheint zu funktionieren.

Ich habe auch versucht, einen neuen Benutzer und eine neue Datenbank gemäß Rails 3.2, FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer (PG::Error) zu erstellen.

Aber sie erscheinen weder in pgadmin noch wenn ich sudo -u postgres psql -l ausführe.

Hast du eine Idee, wo ich den Fehler gemacht habe?

26voto

Rokas Lakštauskas Punkte 1088

Einfachste Lösung ohne Änderung von Konfigurationen. (ubuntu) Benutzer ändern und dann mit der Datenbank-CLI verbinden.

sudo -i -u postgres

psql

entnommen aus https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04

25voto

d.danailov Punkte 9178

Wenn Sie ein Problem haben, müssen Sie Ihre pg_hba.conf suchen. Der Befehl lautet:

find / -name 'pg_hba.conf' 2>/dev/null

und dann ändern Sie die Konfigurationsdatei:

Postgresql 9.3

Postgresql 9.3

Postgresql 9.4

Postgresql 9.3

Der nächste Schritt ist: Starten Sie Ihre db-Instanz neu:

service postgresql-9.3 restart

Wenn Sie Probleme haben, müssen Sie das Passwort erneut festlegen:

ALTER USER db_user with password 'db_password';

24voto

Pranav Premarajan Punkte 321

Dieser Fehler kann auftreten, wenn Sie den Host nicht angeben. Das folgende Szenario ähnelt dem.

user@homepc:~$ psql -d test_db -U test_user
psql: Fehler: FATAL: Peer-Authentifizierung fehlgeschlagen für Benutzer "test_user"
user@homepc:~$ psql -h localhost -d test_db -U test_user
Passwort für Benutzer test_user:

Das Angeben des Hosts hat mein Problem in der PSQL-Befehlszeile gelöst. Versuchen Sie, den Host in der Verbindungskonfiguration für Postgres in Rails anzugeben.

23voto

Taimoor Changaiz Punkte 9228
  1. Gehen Sie zu diesem /etc/postgresql/9.x/main/ und öffnen Sie die Datei pg_hba.conf

In meinem Fall:

$> sudo nano /etc/postgresql/9.3/main/pg_hba.conf
  1. Ersetzen Sie peer durch md5

Das wird also geändert zu:

Datenbank-Administrationsanmeldung über Unix-Domänen-Socket lokal all postgres peer

# TYP  DATENBANK        BENUTZER            ADRESSE                 METHODE

# "lokal" gilt nur für Unix-Domänen-Socket-Verbindungen
lokal   all             all                                     peer
# IPv4 lokale Verbindungen:
host    all             all             127.0.0.1/32            md5

Dies:

Datenbank-Administrationsanmeldung über Unix-Domänen-Socket lokal all postgres md5

# TYP  DATENBANK        BENUTZER            ADRESSE                 METHODE

# "lokal" gilt nur für Unix-Domänen-Socket-Verbindungen
lokal   all             all                                     md5
# IPv4 lokale Verbindungen:
host    all             all             127.0.0.1/32            md5
  1. Dann starten Sie den pg-Server neu:

    $> sudo service postgresql restart

Unten ist eine Liste der VERFAHREN, die zum Verbinden mit postgres verwendet werden:

# VERFAHREN können "trust", "reject", "md5", "passwort", "gss", "sspi",
# "krb5", "ident", "peer", "pam", "ldap", "radius" oder "zert" sein.  Beachten Sie,
# dass "passwort" Passwörter im Klartext sendet; "md5" wird bevorzugt da
# es verschlüsselte Passwörter sendet.

Hinweis: Wenn Sie Ihren postgres-Benutzer noch nicht erstellt haben. Erstellen Sie diesen und dann können Sie auf den postgres-Server mit diesen Benutzeranmeldeinformationen zugreifen.

TIPP: Wenn es nach dem Neustart von postgres nicht funktioniert, schließen Sie das Terminal und öffnen Sie es erneut.

15voto

Luca Marletta Punkte 457

Ich habe das Datenverzeichnis auf einem geklonten Server verschoben und hatte Probleme, mich als postgres anzumelden. Das Zurücksetzen des postgres-Passworts auf diese Weise hat bei mir funktioniert.

root# su postgres
postgres$ psql -U postgres
psql (9.3.6) 
Geben Sie "\help" für Hilfe ein. 
postgres=#\password 
Neues Passwort eingeben: 
Erneut eingeben: 
postgres=#

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