"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.confummd5zu verwenden Passwortauthentifizierung stattpeerAuthentifizierung für Unix-Sockets (localVerbindungstyp), 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.