Determinare la porta di PostgreSQL


12

So che per impostazione predefinita PostgreSQL è in ascolto sulla porta 5432, ma qual è il comando per determinare effettivamente la porta di PostgreSQL?

Configurazione: Ubuntu 9.10 con PostgreSQL 8.4

Risposte:


26

lsof e nmap sono soluzioni, ma non sono installate per impostazione predefinita. Quello che vuoi è netstat (8).

sudo netstat -plunt |grep postgres

Si suppone che Linux stia migrando da route / ifconfig / netstat. Il comando moderno equivalente è ss -plung|grep postgres(nota, stesse bandiere)
ptman,

1
Non c'è gpiù flag per il sscomando. Prova:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox grazie per l'aggiornamento, ma per me che dà il nome della porta, non il numero, quindi penso che ss -pan |grep postgressia più adatto
ptman

6

L'utilità PostgreSQL pg_lsclusters mostra informazioni sulla configurazione e sullo stato di tutti i cluster, incluso il numero di porta.

$ 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

Questo ha anche il vantaggio di non richiedere i privilegi 'sudo' per essere eseguito.

Sui sistemi Debian e Ubuntu, il comando pg_lsclusters è fornito dal pacchetto postgresql-common, che dovrebbe essere installato di default con il server postgresql.


3
Nota che pg_lsclustersè un Ubuntu-ism e non è un comando Postgres standard.
Funzionerà

2

Se vuoi farlo dall'interno del database, fai semplicemente "SHOW port". Ma questo presuppone che tu sia stato in grado di collegarti ad esso, almeno localmente ...


1

Se stai cercando sul computer locale, userei il comando lsof per verificare la porta che sta usando postgresql

lsof -p <postgres_process_id>

Potrebbe essere necessario eseguirlo come root.
Michael Mior,

1

Ho macchine con più istanze di postgres in esecuzione - e quindi ho anche il problema di provare ad abbinare il database corretto con ciascuna porta. Tendo a fare:

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

E poi, per ciascuna delle istanze restituite, cerca la directory ( -Dargomento) e:

$ sudo grep port $DIR/postgresql.conf

0

Ecco una soluzione che ho trovato:

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

Se desideri cercare un computer non locale, localhostpassa semplicemente all'indirizzo IP del server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.