Angenommen, Sie sehen diese Nachricht:
FATAL: Ident authentication failed for user "..."
Was sind die Ursachen dieser Fehlermeldung?
Angenommen, Sie sehen diese Nachricht:
FATAL: Ident authentication failed for user "..."
Was sind die Ursachen dieser Fehlermeldung?
Antworten:
Dies bedeutet, dass Postgres versucht, einen Benutzer mithilfe des Ident-Protokolls zu authentifizieren, und dies nicht kann. Ident auth funktioniert so:
pg_hba.conf
Datei (in /etc/postgres-something/main
) definiert "Ident" als das Protokoll zum Herstellen einer Verbindung zur Datenbank db
für Benutzer, die Verbindungen von bestimmten Hosts herstellenMögliche Ursachen und Lösungen:
sudo apt-get install oidentd
. B. ).CREATE ROLE foo
. Alternativ können Sie einen Eintrag zu hinzufügen /etc/postgresql/.../main/pg_ident.conf
.Vielleicht möchten Sie sich tatsächlich mit einem Passwort verbinden , nicht mit Ident. Bearbeiten Sie die pg_hba.conf
Datei entsprechend. Ändern Sie zum Beispiel:
host all all 127.0.0.1/32 ident
zu
host all all 127.0.0.1/32 md5
Ich bin mir nicht sicher über die Ursachen, aber das hat es für mich behoben:
im pg_hba.conf
dazu wechseln:
host all all 127.0.0.1/32 md5
Exakter Fehler: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
Fügen Sie unter CentOS die folgende Zeile hinzu /var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
Und die anderen Einträge auskommentieren.
Natürlich ist diese Einstellung nicht sicher, aber wenn Sie nur an einer Entwicklungs-VM wie mir herumspielen, ist es wahrscheinlich in Ordnung ...
Wenn Sie dies noch nicht versucht haben, überprüfen Sie Ihre Datei pg_hba.conf. Der Name lautet /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20). Möglicherweise müssen Sie 'find / -name pg_hba.conf' verwenden, um es zu finden.
Ändern Sie am Ende der Datei die 'METHOD'-Werte für lokale Tests auf' trust '(weitere Informationen finden Sie in den Postgres-Dokumenten). Starten Sie die Maschine neu, um sicherzustellen, dass alles sauber gestartet und die neuen Parameter gelesen werden.
Hoffentlich heilt dies Ihre Leiden. Es löste meine Probleme auf Fedora 20 mit PostgreSQL 9.3.
pg_ctl reload
von der Konsole aus oder SELECT pg_reload_conf();
beim Ausführen von SQL als privilegierter Benutzer zu verwenden.
/var/lib/psql/data