port de postgresql confusion 5433 ou 5432?
J'ai installé postgresql sur OSX. Quand je lance psql, je reçois
$ 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 pyrrhon, 5432 est attribué à la pg. Je peux me connecter avec
psql -p 5432
mais pourquoi ne psql pense que c'est 5433 et comment puis-je faire psql regarder dans le bon place par défaut?
- Vérifier si la variable d'environnement
PGPORT
est défini: postgresql.org/docs/current/static/libpq-envars.html
Vous devez vous connecter pour publier un commentaire.
/etc/services
est seulement consultatif, c'est une liste des ports connus. Cela ne veut pas dire que tout ce qui est en train de tourner sur le port ou que le service named sur ce port.Dans PostgreSQL cas il est typique pour utiliser le port 5432 si elle est disponible. Si elle n'est pas, la plupart des installateurs de choisir le prochain port libre, généralement 5433.
Vous pouvez voir ce qui est effectivement en cours d'exécution à l'aide de la
netstat
outil (disponible sur OS X, Windows, et Linux, avec la syntaxe de ligne de commande variable de l'ensemble des trois).C'est plus compliqué sur les systèmes Mac OS X par l'horrible gâchis de différents paquetages PostgreSQL - Apple ancienne version de PostgreSQL intégré à l'OS, Postgres.app, Homebrew, Macports, le EnterpriseDB programme d'installation, etc etc.
Ce qui finit par arriver, c'est que l'utilisateur installe Pg et commence à un serveur à partir d'un emballage, mais utilise le
psql
etlibpq
client à partir d'un emballage différent. Typiquement, cela se produit lorsqu'ils sont équipés de Postgres.application ou un homebrew Pg et la connexion avec lepsql
livré avec le système d'exploitation. Non seulement ceux-ci ont parfois d'autres ports par défaut, mais le Pg livré avec Mac OS X a un autre défaut de socket unix chemin, de sorte que même si le serveur est en cours d'exécution sur le même port, il ne sera pas écouter le même socket unix.La plupart des utilisateurs Mac contourner ce par juste en utilisant le protocole tcp/ip avec
psql -h localhost
. Vous pouvez également spécifier un port si nécessaire, par exemple,psql -h localhost -p 5433
. Vous pourriez avoir plusieurs PostgreSQL instances en cours d'exécution, donc assurez-vous que vous êtes connecté à celui de droite en utilisantselect version()
etSHOW data_directory;
.Vous pouvez également spécifier une socket unix directory; vérifier la
unix_socket_directories
réglage de l'instance PostgreSQL vous souhaitez vous connecter et de préciser qu'avecpsql -h
, par exemplepsql -h /tmp
.Une solution de nettoyage est de corriger votre système
PATH
de sorte que lepsql
etlibpq
associés avec PostgreSQL vous sont effectivement en cours d'exécution est ce que l'on trouve d'abord sur laPATH
. Les détails de qui dépendent de votre version de Mac OS X et qui Pg paquets que vous avez installés. Je n'utilise pas de Mac et ne peut pas offrir beaucoup plus de détails sur le côté sans avoir à dépenser plus de temps que ce qui est actuellement disponible.Réponse rapide sur OSX, définir vos variables d'environnement.
Ou tout ce que vous avez besoin.
Le port par défaut de Postgresql est généralement configurés dans:
Sur Ubuntu ce pourrait être:
De recherche pour
port
dans ce fichier.~/PostgreSQL/data/pg96
Il semble que l'une des raisons les plus courantes de ce qui se passe est que si vous installez une nouvelle version de PostgreSQL sans arrêter le service d'une installation existante. Cela a notamment des maux de tête de la mienne, trop. Avant d'installer ou de mettre à niveau, en particulier sur OS X et à l'aide de l'un de cliquez sur installer à partir de l'Entreprise DB, assurez-vous de vérifier l'état de l'ancienne installation avant de procéder.
Grâce à @a_horse_with_no_name's commentaire, j'ai changé mon PGPORT définition de 5432 dans pg_env.sh. Qui a résolu le problème pour moi. Je ne sais pas pourquoi postgres définir comme 5433 d'abord quand il était hébergement du service à 5432.
Je suis tombé sur ce problème ainsi, il s'est avéré que j'ai eu deux postgres serveurs exécutant en même temps. J'ai désinstallé l'un d'entre eux et a changé le port à 5432 et fonctionne très bien maintenant.
Pour moi dans PgAdmin 4 sur Mac OS High Sierra, en Cliquant sur le PostrgreSQL10 base de données sous Serveurs dans la colonne de gauche, puis la Propriétés onglet, ont montré 5433 comme le port de sous Connexion. (Je ne sais pas pourquoi, parce que j'ai choisi 5432 lors de l'installation). De toute façon, j'ai cliqué sur le Modifier icône sous le Propriétés onglet, modifiez pour 5432, sauvé, et qui a résolu le problème. Allez comprendre.