/etc/services
è solo un avviso, è un elenco di porte conosciute. Non significa che qualcosa sia effettivamente in esecuzione su quella porta o che il servizio denominato verrà eseguito su quella porta.
Nel caso di PostgreSQL è tipico usare la porta 5432 se è disponibile. In caso contrario, la maggior parte degli installatori sceglierà la prossima porta libera, in genere 5433.
Puoi vedere cosa è effettivamente in esecuzione usando netstat
strumento (disponibile su OS X, Windows e Linux, con la sintassi della riga di comando che varia in tutti e tre).
Questo è ulteriormente complicato sui sistemi Mac OS X dall'orribile pasticcio di diversi pacchetti PostgreSQL:l'antica versione di PostgreSQL di Apple integrata nel sistema operativo, Postgres.app, Homebrew, Macports, il programma di installazione di EnterpriseDB, ecc.
Quello che succede è che l'utente installa Pg e avvia un server da un pacchetto, ma usa il psql
e libpq
cliente da una confezione diversa. In genere ciò si verifica quando eseguono Postgres.app o homebrew Pg e si connettono con psql
fornito con il sistema operativo. Non solo questi a volte hanno porte predefinite diverse, ma il Pg fornito con Mac OS X ha un percorso socket unix predefinito diverso , quindi anche se il server è in esecuzione sulla stessa porta non ascolterà lo stesso socket unix.
La maggior parte degli utenti Mac aggira questo problema semplicemente usando tcp/ip con psql -h localhost
. Puoi anche specificare una porta se necessario, ad esempio psql -h localhost -p 5433
. Potresti avere più istanze PostgreSQL in esecuzione, quindi assicurati di connetterti a quella giusta usando select version()
e SHOW data_directory;
.
Puoi anche specificare una directory socket Unix; controlla le unix_socket_directories
impostazione dell'istanza PostgreSQL a cui desideri connetterti e specificarla con psql -h
, ad esempio psql -h /tmp
.
Una soluzione più pulita è correggere il PATH
del tuo sistema in modo che psql
e libpq
associato al PostgreSQL che stai effettivamente eseguendo è ciò che viene trovato per primo su PATH
. I dettagli di ciò dipendono dalla versione di Mac OS X e dai pacchetti Pg installati. Non uso il Mac e non posso offrire molti più dettagli su questo lato senza spendere più tempo di quello attualmente disponibile.