Je viens de mettre à niveau mon MacMini Server de Lion Server vers 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 de faire n'importe quel type de commande de terminal PostgreSQL, j'obtiens le message d'erreur notoire 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 pour _postgres lorsque j'ai eu l'erreur. J'ai essayé plusieurs commandes mais j'ai eu la même erreur. Je viens de redémarrer mon serveur mais pas de chance. Je me suis connecté en tant que root pour regarder / var / pgsql_socket et le dossier est vide. Le dossier / var / pgsql_socket_alt est également vide.
J'ai vérifié en ligne à ce sujet. Cependant, à peu près toutes les solutions que j'ai lues, y compris sur Stack Overflow, suggèrent la suppression et la réinstallation de 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é Apple Enterprise Support (sans accord) et on m'a dit que mon problème devrait être résolu par les développeurs qui gagneraient 695 $.
J'ai un site Web qui est actuellement en panne parce que je ne peux pas le reconstruire. Je ne sais pas où me tourner pour obtenir de l'aide à ce stade. 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 ma sortie pour ps auwwx | 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 une recherche intensive sur le Web, cette vidéo a été trouvée. J'ai pu faire fonctionner PostgreSQL et supprimer l'erreur. Je peux me connecter en utilisant pgadmin et phppgadmin. J'étais sur le point de retourner chez Lion Server à cause de la frustration. Maintenant, je n'aurai pas à le faire.
la source
psql
est sur votrePATH
avant la version que vous avez installée. Ils recherchent le socket unix à différents endroits. Utilisez tcp / ip en spécifiant-h localhost
ouPATH
corrigez de préférence votre afin que le correctpsql
soit trouvé en premier. La décision étrange d'Apple non seulement de regrouper PostgreSQL, mais de le gâcher pour qu'il place les choses dans des endroits non standard est la cause première de ce problème.homebrew
etosx
@CraigRinger pourrait avoir la bonne réponse pour vous, confirmez avecbrew doctor
.Réponses:
J'ai pu ajouter ce qui suit à mon .bash_profile pour éviter l'erreur:
Cela fonctionne parce que :
Votre système d'exploitation prend en charge les sockets de domaine Unix, mais le socket Unix de PostgreSQL qui a
psql
besoin n'existe pas ou se trouve dans un emplacement différent de celui attendu.Spécifier explicitement un nom d'hôte pour
localhost
forcer l'psql
utilisation de TCP / IP. La définition d'une variable d'environnementPGHOST
est l'un des moyens d'y parvenir. Il est documenté dans le manuel de psql .la source
host: localhost
dans database.yml. @dwhalendatabase.yml
, lorsque cette erreur est apparue après la rétrogradation de Postgres vers une ancienne version gérée par Homebrew.Essayez de coller dans la console ceci:
la source
J'ai pu résoudre en remplissant simplement 127.0.0.1 pour l'adresse hôte PostgreSQL plutôt que de le laisser vide. (Exemple Django)
la source
Ouvrez «postgresql.conf» dans votre éditeur préféré. Recherchez la variable 'unix_socket_directories', elle ressemblera probablement à ceci:
Changez la ligne en ceci:
Remarquez si vous voulez que les fichiers de socket dans plus d'un répertoire les séparent par des virgules.
la source
Une solution bien plus simple (grâce à http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). J'étais passé à postgres 9.4. Dans mon cas, tout ce que j'avais à faire (après une journée de recherche sur Google et sans succès)
Redémarrez webrick, et c'est fait!
la source
Comme mentionné par d'autres dans les commentaires, une solution très simple à ce problème consiste à déclarer la base de données «hôte» dans la configuration de la base de données. Ajouter cette réponse juste pour la rendre un peu plus claire pour tous ceux qui liront ceci.
Dans une application Ruby on Rails par exemple, modifiez /config/database.yml:
Remarque: la dernière ligne ajoutée pour spécifier l'hôte. Avant la mise à jour vers Yosemite, je n'ai jamais eu besoin de spécifier l'hôte de cette manière.
J'espère que cela aide quelqu'un.
À votre santé
la source
.s.PGSQL.5432
fichier.Vérifiez l'état de la base de données:
Si la base de données n'est pas en cours d'exécution, démarrez la base de données:
la source
Pouvez-vous vérifier votre fichier postgresql.conf?
Sur quel port votre postgres fonctionne?
Je pense qu'il ne fonctionne pas sur le port 5432.Sinon, changez-le en 5432
OU sur l'utilisation du terminal
la source
J'ai eu ce problème avec Django.
Corrigez-le en définissant explicitement votre nom d'hôte sur "localhost".
la source
je fais en mot en faisant ceci:
et choisissez vos paramètres régionaux préférés
(9.5 est ma version de postgresql)
et puis c'est mot!
la source
Si vous rencontrez le problème ci-dessus mais que vous avez mis à niveau à partir de Yosemite, une approche différente est nécessaire car la solution de mise à niveau peut détruire certains fichiers. Plus de détails sont à `pg_tblspc` manquant après l'installation de la dernière version d'OS X (Yosemite ou El Capitan) .
la source
la source
J'ai continué à obtenir l'erreur ci-dessus et aucune des solutions ci-dessus n'a fonctionné pour moi. Enfin, la solution suivante a résolu mon problème sur Mac OS X
Installez postgres à l'aide de brew
Installer des services de brassage
Pour démarrer postgres en tant que service d'arrière-plan
Pour arrêter les postgres manuellement
Nous pouvons également utiliser les services de brassage pour redémarrer Postgres
la source
vérifiez que le serveur postgres fonctionne avec le code suivant
si le serveur postgres est inactif, écrivez la commande suivante.
la source
J'ai eu cette erreur après que mon ordinateur a gelé et redémarré tout seul. La solution pour moi n'a pas été trouvée sur cette page, plutôt sur une autre question SO très appréciée avec la même erreur psql: impossible de se connecter au serveur: aucun fichier ou répertoire de ce type (Mac OS X) . La réponse: supprimez simplement ce fichier
/usr/local/var/postgres/postmaster.pid
, puisbrew services restart postgresql
faites l'affaire. Tenez compte de l'avertissement sur la réponse liée à la suppression des processus postgres avant de faire cela, sinon vous pourriez corrompre votre base de données de manière permanente.la source
Les autorisations de fichier sont restrictives sur la base de données Postgres appartenant à Mac OS. Ces autorisations sont réinitialisées après le redémarrage ou le redémarrage de Postgres: par exemple, serveradmin start postgres.
Donc, réinitialisez temporairement les autorisations ou la propriété:
La réinitialisation des autorisations n'est pas sécurisée, installez donc une version de la base de données que vous possédez pour une solution.
la source
Cela m'a pris un certain temps, mais j'ai pu le faire fonctionner enfin après avoir examiné les suggestions proposées et des recherches supplémentaires sur le Web. J'ai utilisé les informations de la vidéo YouTube suivante créée par Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Quand j'ai fait cela, j'ai vu le fichier avec .lock comme extension. Cependant, j'ai toujours eu l'erreur lorsque j'ai essayé de démarrer le serveur Rails lorsque j'ai repris le travail sur mon application Rails en utilisant PostgreSQL. Cette fois, j'ai obtenu une erreur d'autorisation refusée. C'est à ce moment-là que je me suis souvenu que non seulement je devais changer les adresses listen_addresses dans le plist, mais aussi que je devais changer unit_socket_permissions en 0777. Je me suis également connecté en tant que root pour modifier les autorisations sur le dossier var / pgsql_socket où je pouvais y accéder au niveau de l'utilisateur. Postgres fonctionne bien maintenant. Je suis en train de recharger mes données à partir de ma sauvegarde SQL.
Ce que je n'ai pas compris, c'est que lorsque j'ai activé le wiki, PostgreSQL fonctionnait soi-disant lorsque j'ai fait un postgres sudo serveradmin fullstatus mais j'ai quand même l'erreur. Tant pis.
la source
Je viens de créer un nouveau cluster et cela a fonctionné pour moi, j'utilisais (PostgreSQL) 9.3.20:
la source
Supprimez d'abord les postgres installés:
Puis installez 'synaptic':
Puis installez Postgres
la source
Pour l'application RubyOnRails, ajoutez
localhost
si vous utilisez une version Postgresql personnaliséela source