J'ai installé postgresql sur OSX. Quand je lance psql, j'obtiens
$ psql
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.5433"?
Cependant, à partir de / etc / services
postgresql 5432/udp # PostgreSQL Database
postgresql 5432/tcp # PostgreSQL Database
# Tom Lane <tgl@sss.pgh.pa.us>
pyrrho 5433/tcp # Pyrrho DBMS
pyrrho 5433/udp # Pyrrho DBMS
5433 est occupé par pyrrho, 5432 est affecté à la pg. Je peux me connecter avec
psql -p 5432
mais pourquoi psql pense-t-il que c'est 5433 et comment puis-je faire en sorte que psql apparaisse au bon endroit par défaut?
postgresql
port
psql
bande passante élevée
la source
la source
PGPORT
est définie: postgresql.org/docs/current/static/libpq-envars.htmlRéponses:
/etc/services
est uniquement indicatif, c'est une liste de ports bien connus. Cela ne signifie pas que quoi que ce soit est réellement en cours d'exécution sur ce port ou que le service nommé fonctionnera sur ce port.Dans le cas de PostgreSQL, il est courant d'utiliser le port 5432 s'il est disponible. Si ce n'est pas le cas, la plupart des installateurs choisiront le prochain port libre, généralement 5433.
Vous pouvez voir ce qui s'exécute réellement à l'aide de l'
netstat
outil (disponible sur OS X, Windows et Linux, avec une syntaxe de ligne de commande variant entre les trois).Ceci est encore compliqué sur les systèmes Mac OS X par l'horrible désordre des différents packages PostgreSQL - l'ancienne version d'Apple de PostgreSQL intégrée au système d'exploitation, Postgres.app, Homebrew, Macports, le programme d'installation d'EnterpriseDB, etc.
Ce qui finit par arriver, c'est que l'utilisateur installe Pg et démarre un serveur à partir d'un emballage, mais utilise le client
psql
et àlibpq
partir d'un emballage différent. Cela se produit généralement lorsqu'ils exécutent Postgres.app ou homebrew Pg et se connectent àpsql
celui livré avec le système d'exploitation. Non seulement ceux-ci ont parfois des ports par défaut différents, mais le Pg livré avec Mac OS X a un chemin de socket unix par défaut différent , donc même si le serveur fonctionne sur le même port, il n'écoutera pas le même socket unix.La plupart des utilisateurs de Mac contournent ce problème en utilisant simplement tcp / ip avec
psql -h localhost
. Vous pouvez également spécifier un port si nécessaire, par exemplepsql -h localhost -p 5433
. Vous pouvez avoir plusieurs instances PostgreSQL en cours d'exécution, alors assurez-vous de vous connecter à la bonne en utilisantselect version()
etSHOW data_directory;
.Vous pouvez également spécifier un répertoire de socket unix; vérifiez le
unix_socket_directories
paramètre de l'instance PostgreSQL à laquelle vous souhaitez vous connecter et spécifiez-le avecpsql -h
, par exemplepsql -h /tmp
.Une solution plus propre consiste à corriger votre système
PATH
afin que lepsql
etlibpq
associé au PostgreSQL que vous exécutez réellement soit ce qui se trouve en premier sur lePATH
. Les détails de cela dépendent de votre version de Mac OS X et des packages Pg que vous avez installés. Je n'utilise pas Mac et je ne peux pas offrir beaucoup plus de détails de ce côté sans passer plus de temps que ce qui est actuellement disponible.la source
Réponse rapide sur OSX, définissez vos variables d'environnement.
Ou tout ce dont vous avez besoin.
la source
Le port par défaut de Postgres est généralement configuré dans:
Sur Ubuntu, cela pourrait être:
Recherchez
port
dans ce fichier.la source
~/PostgreSQL/data/pg96
Merci à @a_horse_with_no_name de commentaire , j'ai changé ma définition PGPORT à 5432 dans pg_env.sh. Cela a résolu le problème pour moi. Je ne sais pas pourquoi postgres l'a initialement défini comme 5433 alors qu'il hébergeait le service à 5432.
la source
Il semble que l'une des raisons les plus courantes que cela se produise soit si vous installez une nouvelle version de PostgreSQL sans arrêter le service d'une installation existante. C'était aussi un de mes maux de tête. Avant d'installer ou de mettre à niveau, en particulier sur OS X et en utilisant le programme d'installation en un clic d'Enterprise DB, assurez-vous de vérifier l'état de l'ancienne installation avant de continuer.
la source
J'ai aussi rencontré ce problème, il s'est avéré que j'avais deux serveurs postgres fonctionnant en même temps. J'ai désinstallé l'un d'eux et changé le port en 5432 et fonctionne bien maintenant.
la source
Pour moi, dans PgAdmin 4 sur Mac OS High Sierra , en cliquant sur la base de données PostrgreSQL10 sous Serveurs dans la colonne de gauche, puis sur l' onglet Propriétés , 5433 était le port sous Connexion . (Je ne sais pas pourquoi, car j'ai choisi 5432 lors de l'installation). Quoi qu'il en soit, j'ai cliqué sur l' icône Modifier sous l' onglet Propriétés , changez cela en 5432 , enregistré et cela a résolu le problème. Allez comprendre.
la source