196 votes

Réparation de Postgresql après la mise à niveau vers OSX 10.7 Lion

J'ai récemment effectué une mise à niveau vers OSX 10.7, et mon installation de rails a complètement échoué lorsque j'ai essayé de me connecter au serveur psql. Lorsque 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 rails ou la console 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"?

Toute idée de ce qui pourrait se passer serait super utile ! Merci.

291voto

John Wang Points 4743

C'est un problème de CHEMIN d'accès. Mac OSX Lion comprend Postgresql dans le système maintenant. Si vous faites un which psql vous aurez probablement voir usr/bin/psql au lieu de usr/local/bin/psql qui est HomeBrew est correcte. Si vous exécutez brew doctor , vous devriez obtenir un message indiquant que vous devez ajouter usr/local/bin à la tête de votre CHEMIN env variable.

L'édition votre .bash_profile ou .de profil, ou n'importe quel shell que vous utilisez et en ajoutant: export PATH=/usr/local/bin:$PATH

comme la première exportation de l' PATH alors soit vous quitter session de shell ou de la source de votre fichier avec source ~/.bash_profile et il devrait maintenant être de nouveau sur OK.

90voto

Dave G Points 2066

Pour ceux d'entre vous qui sont intéressés, j'ai reconstitué la solution. Tout ce dont j'avais besoin était d'ajouter

host: localhost

à la base de données.yml pour mon environnement et tout était bon.

46voto

Ben Points 1196

J'ai eu ce même problème avec Mountain Lion mais la seule chose qui a fonctionné pour moi était cette solution :

Vérifiez où se trouve la cible réelle :

sudo find / -name .s.PGSQL.5432

J'avais besoin de créer ce répertoire :

mkdir /var/pgsql_socket/

Ensuite, en utilisant le résultat de la recherche ci-dessus, créez ce lien symbolique :

ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Je pense que pour la plupart des gens sur Mountain Lion, vous pouvez simplement créer le répertoire et faire le lien symbolique sans perdre de temps à faire la recherche, à moins que le lien symbolique ne fonctionne pas.

PS - mon PostgreSQL a été installé par le biais du programme d'installation officiel.

29voto

Darren Points 489

Si le problème persiste après avoir changé le chemin (comme ce fut le cas pour moi), essayez aussi ceci...

gem pristine pg

Il semble que le problème se situe (partiellement) dans la gemme pg elle-même. Lorsqu'elle est construite, elle détermine l'emplacement de la socket du domaine. Si vous changez l'emplacement de la prise de domaine après coup, cela ne semble pas prendre effet tant que vous n'avez pas reconstruit la gemme.

15voto

Rogerio Points 141

Pour ceux qui ont installé directement à partir du programme d'installation officiel, le simple fait d'ajouter l'hôte à la commande fonctionne sans changement de chemin :

psql -h localhost -U postgres

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