Określanie portu PostgreSQL

12

Wiem, że domyślnie PostgreSQL nasłuchuje na porcie 5432, ale jakie jest polecenie, aby faktycznie ustalić port PostgreSQL?

Konfiguracja: Ubuntu 9.10 z PostgreSQL 8.4

Matthew Rankin
źródło

Odpowiedzi:

26

lsof i nmap są rozwiązaniami, ale nie są domyślnie instalowane. To, czego chcesz, to netstat (8).

sudo netstat -plunt |grep postgres
ptman
źródło
Linux prawdopodobnie migruje z trasy / ifconfig / netstat. Równoważne nowoczesne polecenie to ss -plung|grep postgres(uwaga, te same flagi)
ptman
1
gDla sspolecenia nie ma już flagi . Spróbuj:ss -pa |grep postgresql
GrayedFox
1
@GrayedFox dziękuję za aktualizację, ale dla mnie to daje nazwę portu, a nie numer, więc myślę, że ss -pan |grep postgresjest bardziej odpowiedni
ptman
6

Narzędzie PostgreSQL pg_lsclusters wyświetla informacje o konfiguracji i statusie wszystkich klastrów, w tym numer portu.

$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5433 online postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log

Ma to również tę zaletę, że nie wymaga uruchamiania uprawnień „sudo”.

W systemach Debian i Ubuntu polecenie pg_lsclusters jest dostarczane przez pakiet postgresql-common, który powinien być domyślnie instalowany z serwerem postgresql.

Dan Stangel
źródło
3
Pamiętaj, że pg_lsclustersjest to Ubuntu-ism i nie jest standardową komendą Postgres. Będzie działać w tym przypadku, ale nie jest rozwiązaniem ogólnego zastosowania ...
voretaq7,
2

Jeśli chcesz to zrobić z poziomu bazy danych, po prostu zrób „POKAŻ port”. Ale to zakłada, że ​​udało ci się z nim połączyć, przynajmniej lokalnie ...

Magnus Hagander
źródło
1

Jeśli szukasz na komputerze lokalnym, użyłbym polecenia lsof, aby sprawdzić, czy port używa Postgresql

lsof -p <postgres_process_id>
Dominik
źródło
Być może będziesz musiał uruchomić to jako root.
Michael Mior
1

Mam uruchomione maszyny z wieloma instancjami Postgres - dlatego mam również problem z dopasowaniem poprawnej bazy danych do każdego portu. Zwykle robię:

$ ps aux | grep  postgres | grep -v 'postgres:'

Następnie dla każdej zwróconej instancji poszukaj katalogu ( -Dargumentu) i:

$ sudo grep port $DIR/postgresql.conf
Joe H.
źródło
0

Oto jedno rozwiązanie, które znalazłem:

sudo apt-get install nmap
sudo nmap localhost | grep postgresql

Jeśli chcesz przeszukać komputer nielokalny, po prostu zmień localhostadres IP serwera.

Matthew Rankin
źródło