pg_connect(): Verbindung zum PostgreSQL-Server kann nicht hergestellt werden

pg_connect(): Verbindung zum PostgreSQL-Server kann nicht hergestellt werden

Ich habe mehrere Artikel gelesen, in denen dieser Fix für genau dieses Problem beschrieben wird. Ich habe alle möglichen Variationen zum Bearbeiten der Datei pg_hba.conf ausprobiert, aber ohne Erfolg. Ich erhalte immer noch den folgenden Fehler in meinem Apache-Protokoll, wenn ich versuche, das PHP-Programm auszuführen, das ich verwenden möchte.

Do 28. März 08:20:21 2013] [Fehler] [Client 172.16.1.64] PHP-Warnung: pg_connect(): >Verbindung zum PostgreSQL-Server nicht möglich: FATAL: Peer-Authentifizierung für Benutzer fehlgeschlagen

Dies ist meine aktuelle pg_hba.conf-Datei:

Imgur

Ich weiß nicht, was ich sonst noch versuchen soll. Ich bin für jede Hilfe sehr dankbar!

Danke!

Antwort1

Beachten Sie die erste Regel im pg_hba.conf:

lokal alle alle Peer

Das bedeutet, dass für alle lokalen Verbindungen der Unix-Benutzer derselbe sein sollte wie der Datenbankbenutzer. Offensichtlich ist das bei Ihrem PHP-Code nicht der Fall, daher der FehlerPeer-Authentifizierung für Benutzer fehlgeschlagen ….

Die zweite Regel würde Ihrem Skript die Verbindung ermöglichen, wird jedoch ignoriert, da die erste Regel Vorrang hat:

lokal alles alles Vertrauen

Diese Regel bedeutet, dass alle lokalen Verbindungen ohne Kennwortanforderung und ohne Identitätsprüfung zugelassen werden.

Wenn das für Sie in Ordnung ist, löschen Sie einfach die erste Regel und laden Sie den PostgreSQL-Dienst neu, damit die Änderung wirksam wird.

Die anderen Regeln sollten für das Problem nicht relevant sein, da sie sich auf TCP-Verbindungen beziehen und laut Fehlermeldung ist das nicht die von Ihrem Skript verwendete Methode, sondern es versucht, die Verbindung über den Standard-Unix-Domänen-Socket herzustellen.

verwandte Informationen