J'ai récemment effectué une mise à niveau vers OSX 10.7, auquel cas l'installation de mes rails s'est complètement interrompue lors de la tentative de connexion au serveur psql. Quand je le fais à partir de la ligne de commande en utilisant
psql -U postgres
cela fonctionne parfaitement, mais lorsque j'essaie d'exécuter le serveur ou la console rails avec le même nom d'utilisateur et le même mot de passe, j'obtiens cette erreur
...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Toutes les idées qui pourraient se passer seraient super utiles! Merci!
Réponses:
C'est un problème de PATH. Mac OSX Lion inclut maintenant Postgresql dans le système. Si vous faites un,
which psql
vous verrez probablementusr/bin/psql
au lieu de celuiusr/local/bin/psql
qui est correct de HomeBrew. Si vous exécutez,brew doctor
vous devriez recevoir un message indiquant que vous devez ajouterusr/local/bin
à la tête de votre variable env PATH.Modification de votre .bash_profile ou .profile, ou du shell que vous utilisez et ajout:
export PATH=/usr/local/bin:$PATH
comme première exportation pour
PATH
ensuite quitter la session shell ou sourcez votre fichier avecsource ~/.bash_profile
et cela devrait maintenant être à nouveau OK.la source
Pour ceux d'entre vous qui sont intéressés, j'ai reconstitué la solution. Tout ce dont j'avais besoin était d'ajouter
au database.yml pour mon environnement et tout était sauce.
la source
J'ai eu ce problème avec Mountain Lion, mais la seule chose qui a fonctionné pour moi était cette solution :
Vérifiez où la cible réelle est:
J'avais besoin de créer ce répertoire:
Ensuite, en utilisant le résultat de la recherche ci-dessus, créez ce lien symbolique:
Je soupçonne que pour la plupart des gens sur Mountain Lion, vous pouvez simplement créer le répertoire et faire le lien symbolique et ne pas perdre de temps à faire la recherche, sauf si le lien symbolique ne fonctionne pas.
PS - mon PostgreSQL a été installé via le programme d'installation officiel.
la source
Si le problème persiste après avoir changé de chemin (comme cela a été le cas pour moi), essayez également ceci ...
Il semble que le problème réside (partiellement) dans la gemme pg elle-même. Quand il construit, il détermine où la socket de domaine doit être. Si vous modifiez l'emplacement du socket de domaine après le fait, il ne semble pas prendre effet jusqu'à ce que vous reconstruisiez la gemme.
la source
Pour ceux qui ont installé directement à partir du programme d'installation officiel, l'ajout de l'hôte à la commande fonctionne sans changement de chemin:
la source
J'avais le même problème et j'avais du mal à faire fonctionner la solution de John Wang. Comme Darren l'a noté, il y a un problème avec la gemme pg. Pour que cela fonctionne, je devais:
Réinstallez ensuite.
Ce qui l'a fait fonctionner.
la source
J'ai également rencontré cela, mais j'avais moi-même installé postgres (pas avec homebrew). Si c'est le cas, vous devez trouver l'ancien chemin d'accès à psql (qui peut être / usr / local / bin, mais pour moi c'était / usr / local / pgsql / bin) et l'ajouter à votre $ PATH.
(avant)
which psql
=> / usr / bin / psql(correction) export PATH = / usr / local / psql / bin: $ PATH
(après) `which psql '=> / usr / local / psql / bin
La suggestion de John Wang d'
source ~/.bash_rc
ajouter ensuite à votre bash_rc est d'or.la source
Est-ce pour l'homebrew? Les ports semblent le mettre:
Assurez-vous donc que vous utilisez l'exportation
Problème de ports Mac: https://trac.macports.org/ticket/30125
la source
Je ne suis pas satisfait des réponses les plus appréciées car elles sont spécifiques à l'utilisateur du système d'exploitation ou remappent Postgres pour utiliser TCP au lieu des sockets de domaine, comme l'a souligné @pilif. J'ai vu une autre solution qui implique de réorganiser les chemins par défaut au niveau du système pour vérifier le chemin de Brew avant un chemin système principal, mais cela semble dangereux car cela pourrait affecter toutes les autres collisions de noms d'applications comme celle-ci.
Ce site détaille une solution trouvée par mon collègue. Cela revient à exécuter un script shell unique qui
Cela vient avec la mise en garde que le Postgres par défaut du système est tout ce que la bière a installé, vous devez donc faire un jugement pour savoir si cela vous convient. Je ne me vois pas avoir besoin de Postgres 8.4 spécifiquement sur 9.x, mais YMMV
la source
Une autre solution possible qui a fonctionné pour moi est de réinitialiser le fichier postmaster en le supprimant. Exécutez simplement:
Cela vaut la peine de vérifier le journal pour les erreurs que vous pouvez trouver ici:
Le message d'erreur que j'avais était:
Tout a bien fonctionné par la suite.
la source
Dans mon cas, le serveur n'a pas démarré en raison de paramètres de mémoire partagée incorrects. Au début, j'étais confus car plusieurs processus postgres étaient en cours d'exécution, mais il s'agissait de processus système standard. Recherchez les
postmaster
processus!Tout ce que je devais faire était de modifier les paramètres de mémoire partagée . Jouer avec les paramètres de chemin n'était pas nécessaire dans mon cas.
la source
Vous devrez peut-être spécifier l'hôte de votre base de données.
la source
Si vous aimez un changement permanent dans votre $ PATH, essayez ceci:
cela réécrira votre
~/.MacOSX/environment.plist
.la source
Je suis nouveau sur Rails, mais l'ajout de ce qui suit à database.yml a fonctionné pour moi:
Vous ne savez pas pourquoi Rails utilise par défaut des sockets de domaine au lieu de TCP, tandis que PostgreSQL ne configure pas de sockets de domaine par défaut.
la source
Mon PostgreSQL est installé dans / Library / PostgreSQL afin que / usr / var ne fonctionne pas pour moi.
Il semble que Woz soit correct car chaque fois que je ferme le couvercle de mon macbook pro, il se bloque ... Voici ce qui a fonctionné pour moi après le crash:
la source