"L'authentification par les pairs" signifie qu'il utilise un socket unix et s'attend à ce que l'utilisateur unix qui se connecte ait le même nom d'utilisateur unix que le nom d'utilisateur postgresql.
Puisque votre nom d'utilisateur unix local est funkdified
et vous essayez de vous connecter en tant qu'utilisateur goodsounds
sur un socket de domaine unix (local
) connexion où votre pg_hba.conf
spécifie peer
authentification, Pg rejette correctement votre tentative de connexion.
C'est le comportement par défaut pour de nombreuses installations lors de l'utilisation de sockets Unix.
Vous pouvez :
- Se connecter via TCP/IP en spécifiant un nom d'hôte dans les paramètres de connexion de votre base de données ;
- modifier
pg_hba.conf
utilisermd5
authentification par mot de passe au lieu depeer
authentification pour les sockets unix (local
type de connexion) afin que Pg accepte l'authentification par mot de passe ; ou - Connectez-vous avec un nom d'utilisateur PostgreSQL identique à votre nom d'utilisateur Unix et créez l'utilisateur dans PostgreSQL s'il n'existe pas encore.
Voir les docs pour pg_hba.conf
et le reste du chapitre sur l'authentification client de la documentation.
Notez que les modifications apportées à pg_hba.conf
ne prennent pas effet immédiatement, vous devez redémarrer ou au moins recharger PostgreSQL pour qu'il relise pg_hba.conf
.
Oh, aussi, si vous avez plusieurs versions de PostgreSQL installées, vous pouvez avoir une libpq d'une version et un serveur d'une autre. Dans ce cas, assurez-vous que l'emplacement du socket unix auquel libpq se connecte par défaut est le même que les répertoires unix_socket_directories
du serveur ou remplacez-le par (par exemple) host=/tmp
dans votre chaîne de connexion.