214 votes

psql : FATAL : L'authentification par les pairs a échoué pour l'utilisateur "dev".

Quand je crée un nouvel utilisateur, il ne peut pas se connecter à la base de données.
Je fais ça comme ça :

postgres@Aspire:/home/XXX$ createuser dev
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y

puis créer une base de données :

postgres@Aspire:/home/XXX$ createdb -O dev test_development

après ça, j'essaie psql -U dev -W test_development pour se connecter, mais je reçois l'erreur :

psql: FATAL:  Peer authentication failed for user "dev"

J'ai essayé de résoudre le problème mais sans succès.

2 votes

1 votes

Maintenant, pour être invité à répondre aux questions ci-dessus, vous devez ajouter --interactive à la commande : createuser --interactive joe

12voto

alangrah Points 129

Cela fonctionne pour moi quand je rencontre ce problème :

sudo -u username psql

0 votes

Ne fonctionne que si vous créez un tout nouvel utilisateur sur le système ET dans postgres -- hsming veut juste se connecter à postgres avec l'utilisateur postgres nouvellement créé, dev .

9voto

Rishinder Points 342

Je devais simplement ajouter -h localhost

0 votes

Mon problème était d'utiliser postgres sur un Raspberry. ^^^ ça a marché pour moi ! Merci !

8voto

Abel Points 2430

La solution la plus simple :

CREATE USER dev WITH PASSWORD 'dev';
CREATE DATABASE test_development;
GRANT ALL PRIVILEGES ON DATABASE test_development to dev;
ALTER ROLE dev CREATEROLE CREATEDB;

2voto

bob Points 781

Dans mon cas, j'utilisais un autre port. Le port par défaut est 5432. J'utilisais le 5433. Cela a fonctionné pour moi :

$ psql -f update_table.sql -d db_name -U db_user_name -h 127.0.0.1 -p 5433

0 votes

Cela peut se produire automatiquement lorsque vous avez plus d'une installation de postgres.

1voto

Pour les gens qui verront ça dans le futur, postgres est dans le /usr/lib/postgresql/10/bin sur mon serveur Ubuntu.

Je l'ai ajouté au PATH dans mon fichier .bashrc, et j'ai ajouté cette ligne à la fin

PATH=$PATH:/usr/lib/postgresql/10/bin

puis sur la ligne de commande

$> source ./.bashrc

J'ai rafraîchi mon environnement bash. Maintenant je peux utiliser postgres -D /wherever à partir de n'importe quel répertoire

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X