894 votes

Obtention d'une erreur : Peer authentication failed for user "postgres", lorsque l'on essaie de faire fonctionner pgsql avec rails.

Je reçois l'erreur :

FATAL: Peer authentication failed for user "postgres"

quand j'essaie de faire fonctionner postgres avec Rails.

Voici mon pg_hba.conf , mon database.yml et un vidage de la trace complète .

J'ai changé l'authentification en md5 dans pg_hba et essayé différentes choses, mais aucune ne semble fonctionner.

J'ai également essayé de créer un nouvel utilisateur et une nouvelle base de données comme indiqué dans le tableau ci-dessous. Rails 3.2, FATAL : L'authentification par les pairs a échoué pour l'utilisateur (PG::Error)

Mais ils n'apparaissent pas sur pgadmin ou même lorsque j'exécute le programme. sudo -u postgres psql -l .

Vous savez où je me trompe ?

1 votes

1) : Assurez-vous que vous avez créé un utilisateur nommé "postgres" et que vous avez les droits sur votre base de données. 2) : Assurez-vous qu'il a un mot de passe 3) : Assurez-vous que votre config/database.yml contient les informations d'identification des droits (nom d'utilisateur + mot de passe).

2 votes

Il faut que chaque endroit soit pair et que l'indentation soit réglée sur md5

18 votes

Voir également cette réponse - la connexion peut échouer sur localhost mais réussissent sur 127.0.0.1 .

2voto

Epsilon47 Points 235

Mon problème est que je n'ai pas tapé de serveur. J'ai pensé qu'il s'agissait d'un défaut en raison de l'espace réservé, mais lorsque j'ai tapé localhost, cela a fonctionné.

2voto

Marshall Points 58

Si vous essayez de localiser ce fichier dans Cloud 9, vous pouvez le faire

sudo vim /var/lib/pgsql9/data/pg_hba.conf

Pulse I pour modifier/insérer, appuyez sur ESC 3 fois et tapez :wq enregistrera le fichier et quittera

2voto

ImranNaqvi Points 1306

Si vous rencontrez ce problème avec rails et que vous savez que vous avez déjà créé ce nom d'utilisateur avec un mot de passe et des droits corrects, il vous suffit de mettre ce qui suit à la fin de votre fichier database.yml.

host: localhost

Le fichier global ressemblera à ce qui suit

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  username: root
  password: admin
  host: localhost

Vous n'avez pas besoin de vous toucher pg_hba.conf du tout. Bon codage

0voto

Ravi Kumar Gupta Points 189

Sous CentOS 7, PG 10, le chemin du fichier est le suivant

/var/lib/pgsql/10/data/pg_hba.conf

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