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

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

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.


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


1

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

lsof -p <postgres_process_id>

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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.