66 votes

Adaptateur Postgresql (pg) : impossible de se connecter au serveur

J'obtiens cette erreur à chaque fois que je lance mon application Rails (Elle ne peut pas se connecter à mon Postgresql local )

/Users/leonardo/.rvm/gems/ruby-1.9.3-p362/gems/activerecord-3.2.11/lib/
active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize': 
could not connect to server: No such file or directory (PG::Error)
   Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

J'utilise Postgres.app qu'il fonctionne correctement.

Si je cours

$ psql

Je peux me connecter correctement à la console Postgresql.

$ which psql
 /Applications/Postgres.app/Contents/MacOS/bin/psql

Fichier de gemmes

source 'https://rubygems.org'
ruby "1.9.3"

gem 'rails', '3.2.11'
gem "pg"

database.yml

development:
  adapter: postgresql
  encoding: unicode
  username: leonardo
  password: 
  database: zapping
  port: 5432  

Postgresql (Console)

$ psql
leonardo=# \l

enter image description here

137voto

pjam Points 3680

Essayez d'ajouter host: localhost à votre database.yml. (Basé sur : https://stackoverflow.com/a/10793186/919641 )

26voto

Craig Ringer Points 72371

Votre Pg a été compilée avec la librairie PostgreSQL libpq préinstallée dans Mac OS X et vous utilisez la librairie psql que vous avez installé dans une version plus récente, ou vice versa.

Il est possible de contourner ce problème en spécifiant une connexion TCP/IP, en ajoutant localhost a database.yml mais il est préférable de compiler le fichier Pg contre la libpq pour le serveur que vous utilisez actuellement. Pour ce faire, vous devriez être en mesure de définir le paramètre PATH dans le dossier contenant le bon pg_config avant la compilation. Dans votre cas, ce sera quelque part dans Postgres.app .

25voto

S'il ne fonctionne pas même après avoir ajouté host: localhost , retirer le postmaster.pid

rm /usr/local/var/postgres/postmaster.pid

11voto

Lichtamberg Points 6221

Vous devez ajouter host: localhost à la configuration de votre base de données...

6voto

paneer_tikka Points 885

J'ai eu le même problème sur un Mac. Il s'avère que le psql que j'avais sur mon chemin ne fonctionnait pas correctement. Essayez de lancer psql en tapant :

~/projects/some_project/project-rails$ psql
  psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Si vous voyez ceci, cela indique que le binaire psql sur votre chemin tente de se connecter en utilisant une socket et ne peut le faire (pour une raison quelconque). Comme j'avais déjà téléchargé pgadmin et qu'il se connectait correctement, je savais que ce n'était pas un problème avec le serveur.

Corrigé en ajoutant la bonne version de pgsql à mon PATH :

export PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH

Maintenant psql (et rails) sont heureux !

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