Comme d'autres, j'obtiens cette erreur lorsque j'exécute rake db: migrer dans mon projet ou même essayer la plupart des tâches de base de données pour mes applications Ruby on Rails 3.2.
PGError (impossible de se connecter au serveur: aucun fichier ou répertoire de ce type. Le serveur fonctionne-t-il localement et accepte-t-il les connexions sur le socket de domaine Unix "/tmp/.s.PGSQL.5432"?
J'ai installé PostgreSQL avec Homebrew il y a longtemps et suite à une tentative d'installation de MongoDB récemment, mon installation de PostgreSQL n'a jamais été la même. J'utilise OS X v10.6 Snow Leopard.
Quel est le problème et comment mieux comprendre comment PostgreSQL est et doit être configuré sur mon Mac?
Jusqu'à présent (je pense) cela me dit que PostgreSQL ne fonctionne pas (?).
ps -aef|grep postgres (ruby-1.9.2-p320@jct-ana) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
Mais cela me dit-il que PostgreSQL est en cours d'exécution?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Comment puis-je réparer ça? qu'est-ce que je ne vois pas?
PS: ~/Library/LaunchAgents
inclut deux fichiers .plist PostgreSQL. Je ne sais pas si cela est pertinent.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
J'ai essayé ce qui suit et j'ai obtenu le résultat ci-dessous.
$ psql -p 5432 -h hôte local
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
J'ai lu depuis que cela se produit car OS X installe sa propre version de PostgreSQL et Homebrew installe une version différente dans un endroit différent et les commandes PostgreSQL recherchent dans le répertoire / tmp /. Vous aurez besoin de chercher plus sur Stack Overflow, mais fondamentalement, vous créez un lien symbolique avec PostgreSQL pour que tout ce qui regarde dans ce chemin tmp trouve réellement le chemin réel, si cela a du sens.
C'est le lien où j'ai trouvé quelques autres choses à essayer, en particulier en faisant le lien symbolique comme ci-dessus, Mac OSX Lion Postgres n'accepte pas les connexions sur /tmp/.s.PGSQL.5432 . Je souhaite toujours que quelqu'un mette en place une explication décente des concepts derrière l'installation de PostgreSQL sur OS X et pourquoi tout cela est si difficile.
Dernières informations pour aider au dépannage:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Puis exécutez:
$ echo $PATH
La chose clé à prendre en compte est la suivante:
Assurez-vous que l'entrée de chemin pour la copie de PostgreSQL que vous souhaitez exécuter VENEZ AVANT le chemin vers PostgreSQL du système OS X.
Il s'agit d'une exigence fondamentale qui décide quel PostgreSQL doit être exécuté et c'est ce que l'on me dit conduit à la plupart de ces problèmes.