Determinación del puerto de PostgreSQL


12

Sé que, por defecto, PostgreSQL escucha en el puerto 5432, pero ¿cuál es el comando para determinar realmente el puerto de PostgreSQL?

Configuración: Ubuntu 9.10 con PostgreSQL 8.4

Respuestas:


26

lsof y nmap son soluciones, pero no están instaladas por defecto. Lo que quieres es netstat (8).

sudo netstat -plunt |grep postgres

Se supone que Linux está migrando fuera de route / ifconfig / netstat. El comando moderno equivalente es ss -plung|grep postgres(nota, las mismas banderas)
ptman

1
gYa no hay bandera para el sscomando. Prueba:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox gracias por la actualización, pero para mí eso da el nombre del puerto, no el número, así que creo que ss -pan |grep postgreses más adecuado
ptman

6

La utilidad PostgreSQL pg_lsclusters muestra información sobre la configuración y el estado de todos los clústeres, incluido el número de puerto.

$ 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

Esto también tiene la ventaja de no requerir privilegios de 'sudo' para ejecutarse.

En sistemas Debian y Ubuntu, el comando pg_lsclusters lo proporciona el paquete postgresql-common, que debe instalarse de manera predeterminada con el servidor postgresql.


3
Tenga en cuenta que pg_lsclusterses un Ubuntu-ism, y no es un comando estándar de Postgres. Funcionará para este caso, pero no es una solución de uso general ...
voretaq7

2

Si quiere hacerlo desde la base de datos, simplemente haga "SHOW port". Pero eso supone que has podido conectarte a él, al menos localmente ...


1

Si está buscando en la máquina local, usaría el comando lsof para verificar el puerto que postgresql está usando

lsof -p <postgres_process_id>

Puede que tenga que ejecutar esto como root.
Michael Mior

1

Tengo máquinas con varias instancias de postgres en ejecución, por lo que también tengo el problema de intentar hacer coincidir la base de datos correcta con cada puerto. Tiendo a hacer:

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

Y luego, para cada una de las instancias devueltas, busque el directorio ( -Dargumento) y:

$ sudo grep port $DIR/postgresql.conf

0

Aquí hay una solución que he encontrado:

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

Si desea buscar una máquina no local, simplemente cambie localhosta la dirección IP del servidor.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.