"Peer-Authentifizierung" bedeutet, dass ein Unix-Socket verwendet wird und erwartet wird, dass der verbindende Unix-Benutzer denselben Unix-Benutzernamen wie den postgresql-Benutzernamen hat.
Da Ihr lokaler Unix-Benutzername funkdified
ist und Sie versuchen, sich als Benutzer goodsounds
zu verbinden über einen Unix-Domain-Socket (local
) Verbindung, wo Ihre pg_hba.conf
gibt peer
an Authentifizierung, Pg lehnt Ihren Verbindungsversuch korrekt ab.
Dies ist das Standardverhalten für viele Installationen, wenn Unix-Sockets verwendet werden.
Sie können:
- Stellen Sie eine Verbindung über TCP/IP her, indem Sie einen Hostnamen in Ihren Datenbankverbindungseinstellungen angeben;
- Bearbeiten Sie
pg_hba.conf
ummd5
zu verwenden Passwortauthentifizierung stattpeer
Authentifizierung für Unix-Sockets (local
Verbindungstyp), sodass Pg die Kennwortauthentifizierung akzeptiert; oder - Verbinden Sie sich mit einem PostgreSQL-Benutzernamen, der mit Ihrem Unix-Benutzernamen identisch ist, und erstellen Sie den Benutzer in PostgreSQL, falls er noch nicht existiert.
Siehe die Dokumentation für pg_hba.conf
und den Rest des Kapitels zur Client-Authentifizierung in der Dokumentation.
Beachten Sie, dass Änderungen an pg_hba.conf
vorgenommen werden nicht sofort wirksam werden, müssen Sie PostgreSQL neu starten oder zumindest neu laden, damit es pg_hba.conf
neu liest .
Oh, außerdem, wenn Sie mehrere PostgreSQL-Versionen installiert haben, haben Sie möglicherweise eine libpq von einer Version und einen Server von einer anderen. Stellen Sie in diesem Fall sicher, dass der Speicherort für den Unix-Socket, mit dem sich libpq standardmäßig verbindet, derselbe ist wie die unix_socket_directories
des Servers oder überschreiben Sie es mit (z. B.) host=/tmp
in Ihrer Verbindungszeichenfolge.