web-dev-qa-db-fra.com

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

Je reçois cette erreur à chaque fois que je lance l'application Rails (It ne peut pas me 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

Gemfile

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

57
sparkle

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

122
pjam

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

Cela peut être contourné en spécifiant une connexion TCP/IP, en ajoutant localhost à database.yml, mais il est préférable de compiler la gem Pg avec la libpq pour le serveur que vous exécutez réellement. Pour ce faire, vous devriez pouvoir définir la variable d’environnement PATH dans le dossier contenant le pg_config correct avant la compilation. Dans votre cas, ce sera quelque part dans Postgres.app.

23
Craig Ringer

Si cela ne fonctionne pas même après avoir ajouté Host: localhost, supprimez le postmaster.pid

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

21

vous devriez ajouter Host: localhost à votre configuration de base de données ...

10
BvuRVKyUVlViVIc7

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 à l'aide de socket et qu'il est incapable de le faire (pour une raison quelconque). Comme j'avais déjà téléchargé pgadmin et que la connexion était bonne, je savais que ce n'était pas un problème avec le serveur. 

Le corrige en ajoutant la bonne version de pgsql à mon CHEMIN:

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

Maintenant, psql (et Rails) sont heureux!

6
paneer_tikka

J'ai eu le même problème. Vous devez réellement exécuter/démarrer postgres. Postgres doit avoir cessé de fonctionner sur mon ordinateur récemment, je devais donc m'assurer qu'il fonctionne en démarrant le serveur postgres

postgres -D /usr/local/var/postgres

Ensuite, les commandes suivantes (qui me causaient la même erreur) ont toutes fonctionné:

bundle exec rake db:create db:migrate
bundle exec rspec
6
L. Stepanek

Comme il s’agissait du premier message publié dans les résultats de ma recherche, j’ai décidé de publier le correctif mis à jour correspondant. Depuis aucune de la suggestion ci-dessus n'a fonctionné pour moi. 

brew postgresql-upgrade-database

Il met à jour les données postgresql et a déplacé mon ancienne version. J'étais sur 9,6 au lieu de 10,4

Trouvé la solution ici

5
Mr. Rene

J'ai eu ce problème. Un des commentaires ici m'a aidé à résoudre le problème.

Merci, cette réponse m'a aidé à le réparer. Les étapes que j'ai suivies étaient simples: 1) gem désinstallez pg, 2) bundle install, done. - Haslo 3 décembre 13 à 20:27

gem uninstall pg
bundle install
4
Jared Menard

find/-name 'postgresql.conf'

netstat -an | grep 5432 # => /tmp/.s.PGSQL.5432

vi/Utilisateurs/admin/Bibliothèque/Application\Support/Postgres93/var/postgresql.conf

FROM: unix_socket_directories = '/ tmp'

TO: unix_socket_directories = '/ var/pgsql_socket'

Sudo mkdir/var/pgsql_socket

Sudo chmod 777/var/pgsql_socket

4
the-teacher

Pour heroku c'est tout ce dont vous avez besoin.

heroku addons:create heroku-postgresql

production:
 adapter: postgresql
 encoding: unicode
 Host: localhost
 # For details on connection pooling, see Rails configuration guide
 # http://guides.rubyonrails.org/configuring.html#database-pooling
 pool: 5
2
jmontross

Mon problème était que le fichier /etc/hosts avait changé et n'avait pas cette entrée cruciale: 127.0.0.1 localhost

0
dani24

J'ai juste eu le problème que l'application postgres ne fonctionnait pas sur mon mac ...

0
Yoko

Sur Mac, j'avais différentes versions de postgresql. Ce problème a été résolu lorsque j'ai essayé brew switch postgresql 9.5.5 (je ne pense pas que le numéro de version importe à ce stade) 

$ brew switch postgresql 9.5.5
Cleaning /usr/local/Cellar/postgresql/9.6.1
Cleaning /usr/local/Cellar/postgresql/9.6.5
Cleaning /usr/local/Cellar/postgresql/10.2
Cleaning /usr/local/Cellar/postgresql/10.3
Cleaning /usr/local/Cellar/postgresql/9.5.5
Cleaning /usr/local/Cellar/postgresql/9.5.4

Toutes les données disparaîtront, au fait. Je suppose qu'il existe une commande d'infusion permettant de faire cela sans changer de version, que je n'ai pas pu trouver.

0
kangkyu

J'ai eu le même problème sur OS High Sierra 10.13 J'ai suivi les instructions de ce site. J'ai téléchargé la version 10.4 Ref: https://postgresapp.com/

Puis j'ai ajouté ceci au profil bash: Export PATH = $ PATH: /Library/PostgreSQL/10.4/bin: $ PATH

redémarrez le terminal. 

Ouvrez une nouvelle fenêtre de terminal, puis tapez: psql -U postgres

après cela, vous verrez le message suivant: psql (10.4) Tapez "aide" pour obtenir de l'aide.

postgres = # 

0
Jaime A