web-dev-qa-db-fra.com

PostgreSQL ne fonctionne pas sur Mac

L'erreur dans son intégralité se lit comme suit:

psql: impossible de se connecter au serveur: aucun fichier ou répertoire de ce type. Le serveur fonctionne-t-il localement et accepte-t-il les connexions sur le socket de domaine Unix "/tmp/.s.PGSQL.5432"?

C'est la deuxième fois que je configure Postgresql via Homebrew sur mon Mac, et je n'ai aucune idée de ce qui se passe. Auparavant, cela fonctionnait. À un moment donné, j'ai dû entrer une commande qui a gâché les choses. Je ne suis pas sûr. Maintenant, chaque fois que j'entre une commande SQL à partir de la ligne de commande, je reçois le message ci-dessus. J'ai exécuté une commande pour vérifier si le serveur fonctionne, et ce n'est apparemment pas le cas. Si j'essaie de démarrer le serveur en utilisant

$ postgres -D/usr/local/pgsql/data

Je reçois l'erreur suivante:

postgres ne peut pas accéder au fichier de configuration du serveur "/usr/local/pgsql/data/postgresql.conf": aucun fichier ou répertoire de ce type

J'ai désinstallé et réinstallé Postgresql via Homebrew, mais le problème persiste. Je ne sais absolument pas comment faire fonctionner cela. Toute aide serait appréciée.

74
Michael P.

La réponse est ici .

Exécutez cette commande pour démarrer manuellement le serveur:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
47
Michael P.

Le problème peut également être attribué à un processus en panne qui a laissé postmaster.pid fichier derrière.

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
79
demisx

Je devenais pareil

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

boucle d'installation/démarrage/arrêt/redémarrage de Homebrew en vain ...

Finalement, brew postgresql-upgrade-database travaillé.

On dirait que j'étais sur 9.6 au lieu de 10.4, et quelque chose que mon dernier redémarrage de l'App Store a redémarré tous mes serveurs de base de données ...

37
senbenito

Je viens de résoudre le même problème. C'est juste parce que j'ai oublié pour l'exécuter correctement avant utilisation.

Pour installation purepostgresql sur Mac OS, le processus sera (en utilisant la commande brew ):

brew install postgresql

alors si vous voulez exécuter automatiquement postgresql lors de la connexion:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

ou bien vous voulez juste l'exécuter à tout moment:

postgres -D /usr/local/var/postgres

Si votre cas est plus compliqué, nous allons brew uninstall postgresql et recommencez ces étapes.

J'espère que cela aide!

12
Hoang Le
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 solutions ci-dessus n'a fonctionné pour moi. Enfin, la solution suivante a résolu mon problème sur Mac OS X

Installer des postgres à l'aide de brew

brew install postgres

Installer les services de brassage

brew tap homebrew/services

Pour démarrer postgres en tant que service d'arrière-plan

brew services start postgresql

Pour arrêter manuellement les postgres

brew services stop postgresql

Nous pouvons également utiliser les services de brassage pour redémarrer Postgres

brew services restart postgresql
6
Sudharshan

Cela se produit lorsque le serveur postgres n'est pas en cours d'exécution. Étapes pour installer correctement Postgres via Homebrew sur MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Ceci initialise postgres pour utiliser le répertoire donné comme répertoire de base de données. Normalement, il n'est pas conseillé d'utiliser le répertoire utilisateur pour le stockage de la base de données. Modifier le fichier sudoers pour ajouter initdb et des commandes similaires, puis exécuter initdb sur/usr/local/var/postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Après avoir réussi l'étape 2, il vous sera demandé d'exécuter l'étape 3. Cette commande démarre manuellement le serveur.]

3
Souvik Das

Ça a marché pour moi. Modifiez votre répertoire postgresql en fonction de la version de votre système.

Chemin commun- rm /usr/local/var/postgres/postmaster.pid

mais pour [email protected] dans mon chemin système est rm /usr/local/var/[email protected]/postmaster.pid

redémarrez [email protected] brew services restart [email protected]

2
rahulworld

récemment, je suis passé par un problème similaire. il y a juste un autre problème et une autre solution. J'exécutais 2 versions de postgres (9.3 et 9.6) bien que le serveur ait été configuré pour s'exécuter sur 2 ports différents mais certains comment la commande psql sur bash essaie de se connecter au port par défaut 5432. Assurez-vous de vérifier si votre serveur fonctionne et vérifiez vos paramètres de port, puis exécutez psql -p <port> postgres. La solution change de port.

1
rain

Je décommente simplement dans /etc/postgresql/9.5/main/postgresql.conf

unix_socket_permissions = 0777

et redémarrez postgres. Et pour moi ça marche.

1
Roxana

Je cherchais depuis longtemps, et c'était la solution la plus propre et la plus soignée:

J'ai récemment mis à niveau Postgres de 9.2 à 9.3 en utilisant des postgres de mise à niveau de brew. Le processus a été fluide et pg_upgrade est un outil très pratique.

Cependant, des problèmes sont survenus une fois que j'ai essayé d'exécuter les spécifications nécessaires pour se connecter à Postgres. Même si Postgres fonctionnait définitivement, tout à coup, je recevais:

impossible de se connecter au serveur: aucun fichier ou répertoire de ce type (PG :: ConnectionBad) Le serveur s'exécute-t-il localement et accepte-t-il les connexions sur le socket de domaine Unix "/var/pgsql_socket/.s.PGSQL.5432"? Le problème était que la nouvelle version de Postgres écoute à la place sur /tmp/.s.PGSQL.5432. J'aurais pu déconner avec la configuration et faire en sorte que Postgres utilise la socket de domaine qu'elle était auparavant, ou dire explicitement Rails comment se connecter, mais ces deux approches semblaient être un travail que je n'aurais pas dû avoir À aucun moment je n'avais dit Rails de se connecter aux postgres sur ce chemin, Rails l'avait supposé, et maintenant ses hypothèses étaient fausses).

La solution est simple, mais un peu surprenante. Lorsque vous installez la gemme "pg", elle détecte la version de Postgres installée et définit le chemin de socket de domaine de manière appropriée. La solution est aussi simple que de réinstaller la gemme. $ gem uninstall pg $ cd my-Rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/

1
jalebaro

Pour moi, cela s'est également produit après un redémarrage et aucune des solutions ci-dessus n'a fonctionné pour moi. Après avoir vérifié le journal du serveur comme ceci:

tail /usr/local/var/postgres/server.log

J'ai remarqué:

    2019-11-06 11:04:31.797 CET [85029] FATAL:  data directory "/usr/local/var/postgres" has invalid permissions
2019-11-06 11:04:31.797 CET [85029] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).

J'ai donc changé les autorisations comme ceci:

Sudo chmod 700  /usr/local/var/postgres

et tout fonctionnait à nouveau et la vie était belle.

1
Gijsthebookie

le mettre à jour en utilisant la commande

  brew postgresql-upgrade-database

si vous avez l'erreur suivante Commande 'brew' non trouvée,mais peut être installée avec: Sudo apt install linuxbrew-wrapper

puis installez-le en utilisant la commande

 Sudo apt install linuxbrew-wrapper
0
Nadeem Qasmi