J'utilise http://postgresapp.com . Dans la barre de menu, l'erreur "Impossible de démarrer sur le port 5432". De même, si j'essaie de démarrer le serveur à partir du terminal, je reçois:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
J'ai également exécuté pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.__ et obtenu le server starting
de sortie, mais les mêmes erreurs se sont toujours produites lors de la connexion à psql.
Vous avez une autre instance de postgres en cours d'exécution, c'est la seule application intéressée par ce port. Vous devez utiliser netstat et ps pour le déterminer. Arrêtez ensuite l'instance et désinstallez-la, vous avez peut-être installé enterpiseDb par exemple, c'est ce que j'ai fait.
Si vous exécutez votre serveur sur une machine macOS et que vous avez installé Postgres via Homebrew, vous pouvez arrêter l'instance actuelle comme ceci:
services de brassage arrêt postgresql
Cliquez ensuite sur l’éléphant dans la barre de menus et il devrait démarrer correctement.
Je viens d'avoir ce problème précis. Lorsque j'ai exécuté which psql
, il pointait sur les outils client Postgres installés avec Lion:
/usr/bin/psql
Utilisation d'un indice de Frank Wiles J'ai exécuté ps auxw | grep post
pour confirmer que postgres était en cours d'exécution et qu'il s'exécutait sur le port de droite, ce qui m'a également montré le chemin postgres.app:
/Applications/Postgres.app/Contents/MacOS/bin/postgres
.
J'ai donc édité par .bash_profile pour exporter ce répertoire. Au premier effort je l'ai ajouté à la fin du chemin. Quand j’ai exécuté echo $PATH
, j’ai pu voir que usr/bin était la première chose dans le chemin, et which psql
donnait toujours le chemin /usr/bin
. À ce moment, un ami m'a guidé dans la bonne direction:
export PATH="/Applications/Postgres.app/Contents/MacOS/bin:${PATH}"
Démarrez une nouvelle fenêtre de terminal, puis exécutez which psql
- il devrait pointer sur l’emplacement postgres.app et psql lancer le shell postgres. Fonctionne bien maintenant.
Vous pouvez arrêter le processus en trouvant le PID avec
lsof -i :5432
et puis le tuer avec
kill -9 <PID>
Si vous avez installé Postgres via une autre méthode (par exemple, sur www.postgresql.org) et que son démarrage est automatique au démarrage, vous pouvez empêcher ce dernier de démarrer via les éléments suivants:
Sudo launchctl unload /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist
Sudo rm -f /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist
TIP: utilisez tab pour compléter automatiquement la section com.edu.launchd
afin de déterminer la version en cours de chargement.
Redémarrez Postgres.app et vous devriez être prêt à partir.
(from http://forums.enterprisedb.com/posts/list/1831.page;jsessionid=70621DC48C99EDE663A6A594B05F1A02#6782 )
J'ai essayé à peu près toutes les solutions à ce problème. Pour moi, cela se produit toujours lorsque la batterie de mon MacBook s'épuise, même si l'ordinateur est déjà en veille. Je cherchais dans ~/Library/Application\ Support/Postgres/var-9.4
et j'ai découvert un autre fichier postmaster.pid
que je n'avais jamais vu auparavant. Je l'ai supprimé et maintenant tout est à nouveau opérationnel! J'utilise la version Postgres.app, pas la version brassée.
Les étapes que j'ai prises:
postgres.app
n'est pas en cours d'exécution.rm ~/Library/Application\ Support/Postgres/var-9.$X/postmaster.pid
var-9.$X
, lancez simplement rm ~/Library/Application\ Support/Postgres/postmaster.pid
postgres.app
Il peut également arriver que le PID soit pris… .. Cela m’est arrivé lorsque l’ordinateur a subi un redémarrage inattendu.
Si oui, vous devez vous rendre à:
˜/Library/Application Support/Postgres/var-9.4
Vous pouvez vérifier ce chemin dans la boîte de dialogue Préférences de Postgres.app.
Et puis, il suffit de supprimer le fichier pid
Sudo rm postmaster.pid
Et le serveur démarre tout de suite.
J'ai eu un problème similaire où je ne pouvais pas me connecter à Postgres.app alors que l'application elle-même indiquait qu'elle fonctionnait sur le port 5432.
Je ne sais pas pourquoi, mais même quand j'ai quitté l'application et vérifié qu'aucun processus postgres ne fonctionnait avec ps -a. ces fichiers existaient:
/tmp/.s.PGSQL.5432
et
/tmp/.s.PGSQL.5432.lock
Ma solution consistait à supprimer ces fichiers, puis à redémarrer postgres.app.
En essayant d'ouvrir l'application Postgres, la même erreur concernant post 5432 (sur Mac OSX 10.10.5) s'est produite
J'ai fait:
$ lsof -i | grep LISTEN
Saw quel PID exécutait postgres sur ce port, fait: $ killall {pid}
puis $ brew uninstall postgres
Après cela, j'ai redémarré mon Mac et lancé:
$ lsof -i | grep LISTEN
encore une fois pour vous en assurer. N'a vu aucun postgres courir n'importe où et a pu ouvrir l'application Postgres sans recevoir cet avertissement.
Puis j'ai réinstallé postgres avec $ brew install postgres
UNE AUTRE OPTION :
(J'ai aussi essayé cela une fois lorsque l'approche ci-dessus ne fonctionnait pas et que je ne pouvais tuer aucun des PID)
$ ps auxw | grep post
Vu un processus postgres, que j'ai ensuite Sudo kill <PID>
Tout fonctionne bien maintenant.
De toute évidence, quelque chose d'autre avait pris le port 5432, l'application a donc choisi de fonctionner sous 5433.
Pourquoi ne pas simplement vous connecter à Pg sur le port 5433, si c'est là que ça fonctionne? Vous avez un fichier de socket /tmp/.s.PGSQL.5432
, vous pouvez donc vous connecter avec psql -p 5433
pour les connexions de socket de domaine UNIX. Il écoutera également sur le même port que TCP/IP, vous pourrez donc utiliser psql -h localhost -p 5433
pour TCP/IP et laisser vos applications se connecter au port 5433 au lieu de 5432.
Changez votre .psqlrc
pour définir le nouveau port comme port par défaut et vous pouvez oublier que ce n'est pas sur le port par défaut.
Le mien n'a pas démarré soudainement, et quand j'ai vérifié Console.app, j'ai vu:
com.heroku.postgres-service:
FATAL: could not create shared memory segment: Cannot allocate memory
DETAIL: Failed system call was shmget(key=5432001, size=3874816, 03600).
HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter. You can either reduce the request size or reconfigure the kernel with larger SHMALL. To reduce the request size (currently 3874816 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
The PostgreSQL documentation contains more information about shared memory configuration.
Il s'avère que Postgres n'a pas démarré car j'avais Wireshark (et X11) en cours d'exécution. Cela a bien fonctionné après avoir quitté Wireshark.
Bonne chance!
D'une manière ou d'une autre, j'ai totalement oublié que ce fichier de socket sera caché à cause du point. Assurez-vous d'utiliser ls -A /tmp/.s.PGSQL.5432
si vous vérifiez si le socket est réellement là.
J'ai résolu ce problème en
J'ai eu le même problème lorsque j'essayais d'utiliser postgresql avec Rails. Mettre à jour mon Gemfile pour utiliser la nouvelle version de gem pg résoud ce problème pour moi. (Gem pg version 0.16.0 fonctionne). Dans l'utilisation de Gemfile:
gem 'pg', '0.16.0'
puis exécutez ce qui suit pour mettre à jour la gemme
bundle install --without production
bundle update
bundle install
Cette commande est une ligne qui tue instantanément tous les processus PostgresSQL.
Sudo kill -kill $(Sudo lsof -t -i :5432)
Cela corrigeait tous mes problèmes sur Mac OSX Mojave 10.14.1.
J'ai eu les mêmes problèmes:
psql: impossible de se connecter au serveur: aucun fichier ni répertoire de ce type Le serveur fonctionne-t-il localement et accepte-t-il connexions sur le socket de domaine Unix "/tmp/.s.PGSQL.5432"?
Dans mon cas, il s'agissait d'un fichier hôte corrompu sur mon mac. Je manquais:
127.0.0.1 localhost
Un moyen simple et rapide de vérifier consiste à ouvrir un terminal et à taper:
ping localhost
ou:
scutil -r localhost
Plus d'infos ici J'espère que ça aide.
Un fichier nommé "postmaster.pid" (dans mon répertoire $ PGDATA) empêchait postgresql de démarrer. C'était un fichier zombie, placé il y a 10 jours et quand j'ai brutalement éteint l'ordinateur (en tirant la fiche, littéralement), aucun processus de nettoyage n'a eu l'occasion de supprimer ce fichier.
Vous avez probablement un PostgreSQL installé, supprimé et réinstallé. PostgreSQL a généralement utilisé le port 5432 mais, s'il n'est pas disponible, il passe au prochain disponible, dans ce cas-ci 5433. Vous avez donc probablement choisi ce port lors de votre deuxième installation.
Je pense que vous devriez vérifier le fichier:
/etc/services
et ajustez les lignes ci-dessous pour votre numéro de port prévu:
postgresql 5432/udp # de la base de données PostgreSQL
postgresql 5432/tcp # base de données PostgreSQL
Après cela, vous devez redémarrer votre ordinateur (moyen le plus simple).
Le même problème vient de m'arriver. J'avais Postgres.app 9.2.4.1 en cours d'exécution depuis un moment. Lorsque j'ai mis à jour Mac OS X vers 10.8.5, après le redémarrage obligatoire, il ne fonctionnait plus. J'ai essayé plusieurs choses, y compris la mise à jour vers la 9.2.4.3, et aucune après un autre redémarrage, cela fonctionnait.
Je devais ouvrir le fichier /Users/$USER/Library/Application Support/Postgres/var/postgresql.conf
et:
unix_socket_permissions = 0777
unix_socket_directory = '/tmp'
Après un redémarrage, Postgres.app s’exécutait comme un charme.
Netstat, ps aux, etc ... aucun des 5432 utilisés. Vérifié/Bibliothèque. Trouvé PG9.6 ancienne installation toujours là. Did rm -rf et bang. La version 11 fonctionne bien.