/etc/services
je pouze informativní, je to seznam známých portů. Neznamená to, že na tomto portu skutečně něco běží nebo že na tomto portu poběží pojmenovaná služba.
V případě PostgreSQL je typické použití portu 5432, pokud je k dispozici. Pokud tomu tak není, většina instalačních techniků zvolí další volný port, obvykle 5433.
Co skutečně běží, můžete vidět pomocí netstat
nástroj (dostupný v OS X, Windows a Linux, se syntaxí příkazového řádku se u všech tří liší).
To je na systémech Mac OS X dále komplikováno hrozným nepořádkem různých balíčků PostgreSQL – starodávná verze PostgreSQL společnosti Apple zabudovaná do OS, Postgres.app, Homebrew, Macports, instalační program EnterpriseDB atd.
Nakonec se stane, že uživatel nainstaluje Pg a spustí server z jednoho balíčku, ale použije psql
a libpq
klienta z jiného balení. Obvykle k tomu dochází, když spouští Postgres.app nebo homebrew Pg a připojují se k psql
dodávané s OS. Nejen, že někdy mají různé výchozí porty, ale Pg dodaný s Mac OS X má jinou výchozí cestu pro unixový socket , takže i když server běží na stejném portu, nebude naslouchat stejnému unixovému soketu.
Většina uživatelů počítačů Mac tento problém řeší pouze pomocí tcp/ip s psql -h localhost
. V případě potřeby můžete také zadat port, např. psql -h localhost -p 5433
. Možná máte spuštěno více instancí PostgreSQL, takže se ujistěte, že se připojujete ke správné pomocí select version()
a SHOW data_directory;
.
Můžete také zadat adresář unixového soketu; zkontrolujte unix_socket_directories
nastavení instance PostgreSQL, ke které se chcete připojit, a specifikujte to pomocí psql -h
, např.psql -h /tmp
.
Čistším řešením je opravit váš systém PATH
takže psql
a libpq
spojené s PostgreSQL, který skutečně používáte, je to, co je na PATH
nalezeno jako první . Podrobnosti závisí na vaší verzi Mac OS X a na tom, které balíčky Pg jste nainstalovali. Nepoužívám Mac a nemohu nabídnout mnohem více podrobností na této straně, aniž bych strávil více času, než je aktuálně k dispozici.