sql >> Databáze >  >> RDS >> PostgreSQL

postgresql port zmatení 5433 nebo 5432?

/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.



  1. Získání maximální hodnoty z řádků a připojení k jiné tabulce

  2. Jak opravit nesprávnou hodnotu řetězce v MySQL

  3. Je substr nebo LIKE rychlejší v Oracle?

  4. Refaktorujte cizí klíč na pole