Визначення порту PostgreSQL


12

Я знаю, що PostgreSQL за замовчуванням прослуховує порт 5432, але яка команда фактично визначити порт PostgreSQL?

Конфігурація: Ubuntu 9.10 з PostgreSQL 8.4

Відповіді:


26

lsof та nmap - це рішення, але вони не встановлені за замовчуванням. Те, що ви хочете, це netstat (8).

sudo netstat -plunt |grep postgres

Linux нібито переселяється з маршруту / ifconfig / netstat. Еквівалентною сучасною командою є ss -plung|grep postgres(зверніть увагу, ті ж прапори)
ptman

1
Для команди більше немає gпрапора ss. Спробуйте:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox дякую за оновлення, але для мене, що дає ім'я порту, а не номер, тому я вважаю ss -pan |grep postgres, що більше підходить
ptman

6

Утиліта PostgreSQL pg_lsclusters відображає інформацію про конфігурацію та стан усіх кластерів, включаючи номер порту.

$ 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

Це також має перевагу в тому, що не потрібно мати права «sudo» для запуску.

У системах Debian і Ubuntu команда pg_lsclusters надається пакетом postgresql-common, який слід встановити за замовчуванням на сервері postgresql.


3
Зауважте, що pg_lsclustersце Ubuntu-ism і не є стандартною командою Postgres. Він буде працювати у цій справі, але це не загальне рішення ...
voretaq7

2

Якщо ви хочете зробити це всередині бази даних, просто зробіть "ШОУ порт". Але це передбачає, що ви змогли підключитися до нього, принаймні локально ...


1

Якщо ви шукаєте на локальній машині, я використовую команду lsof, щоб перевірити, чи використовує порт postgresql

lsof -p <postgres_process_id>

Можливо, вам доведеться запустити це як root.
Майкл Міор

1

У мене працюють машини з декількома екземплярами постгресів, і тому у мене також виникає проблема намагатися зіставити правильну базу даних з кожним портом. Я схильний робити:

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

А потім для кожного повернутого примірника шукайте каталог ( -Dаргумент) і:

$ sudo grep port $DIR/postgresql.conf

0

Ось одне рішення, яке я знайшов:

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

Якщо ви хочете здійснити пошук не локальної машини, просто змініть localhostIP-адресу сервера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.