Je viens de mettre à niveau mon MacMini Server de Lion Server à Mountain Lion en utilisant OS X Server. J'ai le même problème avec PostgreSQL que l'année dernière lorsque j'ai installé Lion Server pour la première fois.
Lorsque j'essaie d'exécuter n'importe quelle commande PostgreSQL en mode terminal, je reçois le fameux message d'erreur suivant, que beaucoup ont reçu au fil des ans :
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"?
J'essayais de changer le mot de passe de _postgres quand j'ai eu cette erreur. J'ai essayé plusieurs commandes mais j'ai obtenu la même erreur. Je viens de redémarrer mon serveur, mais sans succès. Je me suis connecté en tant que Root pour consulter le dossier /var/pgsql_socket et celui-ci est vide. Le dossier /var/pgsql_socket_alt est également vide.
J'ai fait des recherches en ligne à ce sujet. Cependant, presque toutes les solutions que j'ai lues, y compris sur Stack Overflow, suggèrent de supprimer et de réinstaller PostgreSQL. Je ne sais pas mais cela ne semble pas être une option plausible car plusieurs options de l'application serveur utilisent PostgreSQL. J'ai contacté le service d'assistance aux entreprises d'Apple (sans accord) et on m'a dit que mon problème devrait être résolu par les développeurs, ce qui coûterait 695 $.
J'ai un site web qui est en panne en ce moment parce que je ne peux pas le reconstruire. Je ne sais pas vers qui me tourner pour obtenir de l'aide à ce sujet. Je vais continuer à chercher en ligne pour voir si je peux trouver quelque chose. Cependant, j'espère que quelqu'un pourra me donner une réponse rapidement afin que je puisse reconstruire ma base de données.
Mise à jour : 13/12/2012 15:33 GMT-6
Voici mon résultat pour ps auwx|grep postg :
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Mise à jour : 13/12/2012 18:10 GMT-6
Après d'intenses recherches sur le web, j'ai trouvé cette vidéo. J'ai réussi à faire fonctionner PostgreSQL et à supprimer l'erreur. Je suis capable de me connecter en utilisant pgadmin et phppgadmin. J'étais sur le point de revenir au serveur Lion par pure frustration. Maintenant, je n'aurai pas à le faire.
23 votes
Votre problème se résume au fait que la version préinstallée de PostgreSQL pour Mac OS X ne permet pas d'accéder à la base de données.
psql
est sur votrePATH
avant la version que vous avez installée. Ils recherchent le socket unix à différents endroits. Soit vous utilisez tcp/ip en spécifiant-h localhost
ou, de préférence, réparer votrePATH
donc la bonnepsql
est trouvé en premier. La décision bizarre d'Apple de ne pas se contenter d'intégrer PostgreSQL, mais de le modifier de manière à placer des éléments à des endroits non standard est la cause première de ce problème.3 votes
Il y a un problème en cours dans OSX, où les empaqueteurs ont décidé de mettre le socket unix-domain à un endroit différent de la normale. Laissez-moi chercher ... BRB ... stackoverflow.com/a/8482546/905902
0 votes
J'ai copié un ancien PATH dans .bashrc. Je n'ai pas installé une autre version de postgreSQL. Voici ma déclaration PATH qui inclut le code pour RVM. Si quelqu'un peut me dire en quoi le changer, je le ferai. Lorsque je fais psql, il est trouvé dans /usr/bin/psql. Merci beaucoup à vous tous pour votre aide. PATH="$PATH:$HOME/.rvm/bin:/usr/bin/psql:/usr/local:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" Je recherche également le fichier socket en me connectant en tant que Root.
1 votes
Pour ceux qui utilisent
homebrew
yosx
@CraigRinger a peut-être la bonne réponse pour vous, confirmez avecbrew doctor
.