Prise le Fichier "/var/pgsql socket/.s.PGSQL.5432 " manquant dans Mountain Lion (OS X Server)

je viens de mettre à jour mon serveur MacMini 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 quand J'ai installé Lion Server.

quand j'essaie de faire n'importe quel type de commande de terminal PostgreSQL j'obtiens le message d'erreur notoire suivant que beaucoup ont obtenu au cours des années:

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'ai essayé de changer le mot de passe de _postgres quand j'ai eu l'erreur. J'ai essayé plusieurs commandes mais ont la même erreur. J'ai redémarré mon serveur mais pas de chance. Je me suis connecté en tant que root pour regarder /var/pgsql_socket et le dossier est vide. 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 le débordement de la pile, suggèrent une suppression et une réinstallation de PostgreSQL. Je ne sais pas mais cela ne semble pas être une option plausible car plusieurs options sur L'Application serveur l'utilisation de PostgreSQL. J'ai contacté Apple Enterprise Support (pas d'accord) et on m'a dit que mon problème devrait être résolu par les développeurs qui lanceraient $695.

j'ai un site qui est en panne en ce moment parce que je ne peux pas le reconstruire. Je ne sais pas où se tourner pour obtenir de l'aide avec ce à ce point. Je vais continuer à chercher en ligne pour voir si je peux trouver quelque chose. Toutefois, j'espère que quelqu'un peut me donner une réponse rapide afin que je puisse reconstruire ma base de données.

mise à jour: 12/13/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: 12/13/2012 18:10 GMT-6

après une recherche intense sur le web, cette vidéo a été trouvée. J'ai réussi à faire fonctionner PostgreSQL et à supprimer l'erreur. Je peux me connecter en utilisant pgadmin et phppgadmin. J'étais sur le point de retourner à Lion Server à cause de ma frustration. Maintenant, Je n'aurez pas à.

http://www.youtube.com/watch?v=y1c7WFMMkZ4

85
demandé sur Pamela Cook - LightBe Corp 2012-12-14 01:25:17

18 réponses

j'ai pu ajouter ce qui suit à mon .bash_profile pour prévenir l'erreur:

export PGHOST=localhost

cela fonctionne parce que :

si vous omettez le nom d'hôte, psql se connectera via une socket Unix-domain à un serveur sur l'hôte local, ou via TCP/IP à localhost sur les machines qui n'ont pas de sockets Unix-domain.

votre système d'exploitation prend en charge les sockets de domaine Unix, mais Unix de PostgreSQL socket que psql besoins soit n'existe pas ou est dans un endroit différent qu'il attend.

spécifiant explicitement un nom d'hôte comme localhost forces psql pour utiliser TCP/IP. Définition d'une variable d'environnement PGHOST est l'un des moyens pour y parvenir. C'est documenté dans le manuel de psql .

268
répondu mmasters 2017-09-26 10:58:16

Essayer de coller dans la console:

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
22
répondu Bryan Algutria 2014-08-14 16:31:50

j'ai été capable de résoudre en remplissant simplement 127.0.0.1 pour L'adresse de l'hôte PostgreSQL plutôt que de la laisser vide. (Django Example)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'pass',
        'HOST': '127.0.0.1',
        'PORT': '',
        }
}
21
répondu Nick Woodhams 2013-09-06 06:08:46

Ouvrir " postgresql.conf' de vous éditeur préféré. Cherchez la variable 'unix_socket_directories', elle ressemblera très probablement à ceci:

unix_socket_directories = '/private/tmp/'

modifier la ligne comme suit:

unix_socket_directories = '/var/pgsql_socket/'

notez si vous voulez que les fichiers socket dans plus d'un répertoire soient séparés par une virgule.

9
répondu Craig Thomas 2014-10-09 09:54:56

comme mentionné par d'autres dans les commentaires, une solution vraiment simple à ce problème est de déclarer la base de données "hôte" dans la configuration de la base de données. Ajouter cette réponse juste pour le rendre un peu plus clair pour quiconque lisant ceci.

dans une application Ruby on Rails par exemple, éditer /config/database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: database_name
  pool: 5
  host: localhost

Note: la dernière ligne ajoutée pour spécifier l'hôte. Avant la mise à jour de Yosemite, je n'ai jamais nécessaire de spécifier l'hôte de cette façon.

J'espère que ça aidera quelqu'un.

Cheers

6
répondu David Battersby 2015-04-08 09:51:45

une solution beaucoup plus simple (grâce à http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres / ). J'avais mis à niveau vers postgresql 9.4. Dans mon cas, tout ce que je devais faire (après une journée de googling et de ne pas réussir)

gem uninstall pg
gem uninstall activerecord-postgresql-adapter
bundle install

redémarrez webrick, et c'est fait!

5
répondu Jan Gerritsen 2015-08-13 03:01:46

Vérifier l'état de la base de données:

service postgresql status

si la base de données n'est pas en cours d'exécution, démarrer le db:

sudo service postgresql start
4
répondu Sivakumar R.J 2017-02-23 08:41:02

pouvez-vous vérifier votre postgresql.fichier conf ??

sur quel port vos postgres courent-ils ??

je pense qu'il ne fonctionne pas sur le port 5432.Si vous ne le changez pas en 5432

ou sur utilisation finale

psql -U  postgres -p YOUR_PORT_NUMBER database_name
2
répondu Hunter 2012-12-13 21:29:24

je fais en mot en faisant ceci:

dpkg-reconfigure locales

et choisissez vos emplacements préférés

pg_createcluster 9.5 main --start

(9.5 est ma version de postgresql)

/etc/init.d/postgresql start

et puis il mot!

sudo su - postgres
psql
2
répondu mymusise 2017-01-20 03:07:12

si vous avez le problème ci-dessus mais que vous avez mis à jour depuis Yosemite, alors 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) .

1
répondu Obromios 2017-05-23 12:32:34

J'ai eu ce problème avec Django.

corrigez-le en définissant explicitement votre nom d'hôte en"localhost".

1
répondu Ashwin Balamohan 2015-01-12 21:59:27
apt-get install postgres-xc-client
apt-get install postgres-xc
1
répondu angela 2015-08-18 09:32:50
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'ai continué à obtenir l'erreur ci-dessus et aucune des deux solutions n'a fonctionné pour moi. Enfin la solution suivante a résolu mon problème sur Mac OS X

Installer postgres à l'aide de brassage

brew install postgres

Installer brew services

brew tap homebrew/services

Pour démarrer postgres comme un service d'arrière-plan

brew services start postgresql

pour arrêter les postgres manuellement

brew services stop postgresql

nous pouvons aussi l'utilisation de brasser de services à redémarrer Postgres

brew services restart postgresql
1
répondu Sudharshan 2017-01-23 12:27:29

vérifiez que le serveur postgres tourne avec le code suivant

sudo service postgresql status

si le serveur postgres est inactif, écrivez la commande suivante.

sudo service postgresql start
1
répondu wailinux 2018-09-07 06:57:32
Les permissions de fichiers

sont restrictives sur le db de Postgres détenu par Mac OS. Ces permissions sont réinitialisées après redémarrage, ou redémarrage de Postgres: par exemple serveradmin start postgres.

Donc, temporairement réinitialiser les autorisations ou de la propriété:

sudo chmod o+rwx /var/pgsql_socket/.s.PGSQL.5432
sudo chown "webUser"  /var/pgsql_socket/.s.PGSQL.5432

Permissions réinitialisation n'est pas sécurisé, donc installer une version de la db que vous possédez pour une solution.

0
répondu clewis 2015-03-26 13:39:53

cela m'a pris un certain temps, mais j'ai finalement réussi à obtenir ce résultat après avoir examiné les suggestions offertes et les recherches supplémentaires effectuées sur le web. J'ai utilisé l'information dans la vidéo YouTube suivante créée par Mactasia:

http://www.youtube.com/watch?v=y1c7WFMMkZ4

quand j'ai fait ça, j'ai vu le dossier .verrouillage comme extension. Cependant j'ai quand même eu l'erreur quand j'ai essayé de démarrer le serveur de Rails quand je reprise du travail sur mon application Rails en utilisant PostgreSQL. Cette fois, on m'a refusé une permission. C'est alors que je me suis souvenu que non seulement j'ai dû changer listen_addresses dans la liste, mais j'ai aussi dû changer unit_socket_permissions à 0777. Je me suis aussi connecté en tant que root pour changer les permissions sur le dossier var/pgsql_socket où je pourrais y accéder au niveau de l'utilisateur. Postgres fonctionne bien maintenant. Je suis en train de recharger mes données depuis ma sauvegarde SQL.

Ce que je n'ai pas compris, c'est que lorsque j'ai eu wiki activé PostgreSQL était supposé fonctionner quand j'ai fait un sudo serveradmin fullstatus postgres mais j'ai quand même eu l'erreur. Oh bien.

0
répondu Pamela Cook - LightBe Corp 2016-06-21 08:43:18

je viens de créer un nouveau cluster et qui a fonctionné pour moi, j'ai utilisé (PostgreSQL) 9.3.20:

sudo pg_createcluster 9.3 main --start
0
répondu Bruno Filgueiras 2017-12-04 21:54:24

supprimer D'abord les boutons installés:

sudo apt-get purge postgr*
sudo apt-get autoremove

puis installer "synaptic":

sudo apt-get install synaptic
sudo apt-get update

puis installer Postgres

sudo apt-get install postgresql postgresql-contrib
0
répondu Gurudath BN 2018-09-07 06:41:47