Comme d'autres, j'obtiens cette erreur lorsque je lance rake db:migrate dans mon projet ou même lorsque j'essaie la plupart des tâches liées à la base de données pour ma Ruby on Rails 3.2 applications.
PGError (Impossible de se connecter au serveur : No such file or directory. Le serveur serveur fonctionne-t-il localement et accepte-t-il les connexions sur le socket du domaine Unix ? "/tmp/.s.PGSQL.5432" ?
J'ai installé PostgreSQL con Homebrew il y a longtemps et à la suite d'une tentative d'installation de MongoDB récemment, mon installation de PostgreSQL n'a plus jamais été la même. J'utilise OS X v10.6 Snow Leopard.
Qu'est-ce qui ne va pas et comment puis-je mieux comprendre comment PostgreSQL est et devrait être configuré sur mon Mac ?
Jusqu'à présent (je pense) cela m'indique que PostgreSQL n'est pas en cours d'exécution ( ?).
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 est-ce que cela m'indique 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 résoudre ce problème ? Qu'est-ce que je ne vois pas ?
PS : ~/Library/LaunchAgents
comprend deux fichiers .plist de PostgreSQL. Je ne sais pas si c'est pertinent.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
J'ai essayé ce qui suit et j'ai obtenu le résultat suivant.
$ psql -p 5432 -h localhost
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 parce qu'OS X installe sa propre version de PostgreSQL et que Homebrew installe une version différente à un endroit différent et que les commandes PostgreSQL cherchent dans le répertoire /tmp/. Vous devrez faire une recherche plus poussée sur Stack Overflow, mais en gros, vous faites un lien symbolique vers PostgreSQL pour que tout ce qui cherche dans le chemin tmp trouve en fait le vrai chemin, si cela a un sens.
C'est sur ce lien que j'ai trouvé d'autres choses à essayer, en particulier la création d'un lien symbolique comme indiqué ci-dessus, Mac OSX Lion Postgres n'accepte pas les connexions sur /tmp/.s.PGSQL.5432 . J'aimerais toujours que quelqu'un mette au point une explication décente des concepts derrière l'installation de PostgreSQL sur OS X et pourquoi c'est si difficile.
Dernières informations pour faciliter le dépannage :
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Ensuite, courez :
$ echo $PATH
L'élément clé à prendre en compte est le suivant :
Assurez-vous que le chemin d'accès à la copie de PostgreSQL que vous souhaitez exécuter précède le chemin d'accès à PostgreSQL du système OS X.
Il s'agit d'une exigence fondamentale qui détermine quel PostgreSQL est exécuté et c'est ce qui, d'après ce que l'on m'a dit, est à l'origine de la plupart de ces problèmes.
0 votes
Avez-vous trouvé une solution à ce problème ? Je vois que vous n'en avez pas marqué. Aucune de ces solutions ne m'aide non plus.
0 votes
Il s'agit encore principalement de vodou et d'incarnations étranges pour que cela fonctionne. Je viens d'ajouter [Edit 2] ci-dessus avec un lien avec quelques suggestions supplémentaires et comment faire le lien symbolique comme indiqué dans mes commentaires d'édition. Le lien symbolique a fonctionné pour moi à la fin, mais je pense que j'ai aussi désinstallé et réinstallé postgres et homebrew en cours de route, donc difficile de savoir exactement ce qui a fait la différence. Bonne chance. Faites un rapport si vous découvrez quelque chose de nouveau, avec 15 000 vues sur cette question, c'est quelque chose qui donne du fil à retordre à beaucoup de gens !
0 votes
@AndrasGyomrey Je reviens juste de RailsCamp15 en Australie et les gens ont dit qu'une des clés était d'avoir un fichier de chemin correct, j'ai édité l'Edit 3 ci-dessus pour expliquer cela.
0 votes
Gardez à l'esprit que le fait que launchctl signale que quelque chose est chargé ne signifie PAS nécessairement qu'il est opérationnel. Vous devriez jeter un coup d'œil à bigsql.com comme alternative ; il fonctionne sur Mac et possède une bonne interface de gestion.