Encuentra el nombre de host y el puerto con los comandos de PSQL

150

Tengo PSQL ejecutándose, y estoy tratando de obtener una aplicación perl que se conecte a la base de datos. ¿Hay un comando para encontrar el puerto actual y el host en el que se ejecuta la base de datos?

jamesatha
fuente

Respuestas:

57

El puerto predeterminado de PostgreSQL es 5432. El host en el que opera la base de datos debería haber sido proporcionado por su proveedor de hosting; Supongo que sería el mismo host que el servidor web si no se especificara uno. Por lo general, esto se configuraría como localhost, suponiendo que su servidor web y el servidor de la base de datos estén en el mismo host.

Brad Koch
fuente
También encontré este problema y probé el puerto 5433, y esto está funcionando
Jonny Manowar,
55
Esto en realidad no responde la pregunta.
sk
@sk Lee el contexto. El OP no conocía el host y el puerto para su base de datos postgres. Se pueden conectar con un psqlcomando básico , eso implica localhost:5432. A menos que alguien sea inteligente con env vars / aliases / etc. No me encanta mi respuesta una década después, pero resolver la x en lugar de y está perfectamente bien y en este caso ha ayudado a cientos de personas.
Brad Koch
228
SELECT *
FROM pg_settings
WHERE name = 'port';
un caballo sin nombre
fuente
2
Esto no funciona si tiene varios servidores en el mismo clúster, desafortunadamente ...
Vitor Baptista
2
En realidad, esto le da el número de puerto, no el host del servidor.
hd1
2
@ hd1: ¿y? La pregunta era (también) cómo obtener el número de puerto. Y eso es lo que devuelve la consulta.
a_horse_with_no_name
sí, pero si no puede conectarse a la base de datos, no puede ejecutar eso: P
jaydel
137

Este comando te dará el número de puerto postgres

 \conninfo

Si postgres se está ejecutando en el servidor Linux, también puede usar el siguiente comando

sudo netstat -plunt |grep postgres

O (si viene como postmaster)

sudo netstat -plunt |grep postmaster

y verás algo similar a esto

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgres

en este caso, el número de puerto es 5432, que también es el número de puerto predeterminado

enlace de créditos

Khaino
fuente
1
viene como postmaster para 5432.
código
44
Esta es la respuesta correcta. la respuesta elegida es verdadera pero no está relacionada con la pregunta.
Luis Martins
42

select inet_server_addr(); le da la dirección IP del servidor.

Kaarel
fuente
2
lamentablemente, esto no da el nombre de host "en vivo" si se conecta a través de proxy ssh - Sigo recibiendo "127.0.0.1"
Andrew Wolfe
8
No obtuve nada:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex
No dio el nombre de host
Kumar Vaibhav
15

select inet_server_port(); te da el puerto del servidor.

Andromida
fuente
3
En bluehost, esta consulta devuelve un campo en blanco cuando en realidad el puerto era 5432. Esta consulta no siempre devuelve el número de puerto.
Eric Leschinski
13
select inet_server_addr( ), inet_server_port( );
gerardw
fuente
1
¿Cómo es esto diferente de Kaarel Kitsemets respuesta y de Andromida respuesta ?
Todos los trabajadores son esenciales el
1
Responde a la pregunta que se hizo como una única solución de copiar y pegar.
gerardw
12

Este es un método que no es SQL. Se dan instrucciones sobre la imagen misma. Seleccione el servidor sobre el que desea encontrar la información y luego siga los pasos.

ingrese la descripción de la imagen aquí

bonCodigo
fuente
9

El puerto postgresql está definido en su postgresql.confarchivo.

Para mí en Ubuntu 14.04 es: /etc/postgresql/9.3/main/postgresql.conf

En el interior hay una línea:

port = 5432

Cambiar el número allí requiere reiniciar postgresql para que surta efecto.

Eric Leschinski
fuente
5

Puede usar el comando en psql \conninfo que obtendráYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".

Intra
fuente
3

Desde la terminal puedes hacer:

\ conninfo

Sugeriría leer una documentación en su lista exhaustiva de todos los comandos usando:

\?

Vinayak Mishra
fuente
0

vaya a la "Terminal" y simplemente escriba

service postgres status

En los resultados puede obtener los detalles del puertoEjecución de detalles de postgres

En mi caso, se ejecuta en el puerto "5432" (predeterminado).
Estoy usando CentOS 7. Espero que esto ayude.

Rahal Kanishka
fuente
0
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;

Esto utiliza la variable HOST integrada de psql, documentada aquí

Y funciones de información del sistema postgres, documentadas aquí

profesorcolm
fuente
Si se está conectando localmente, HOSTserá el directorio en el que reside su socket de dominio UNIX, por ejemplo /tmp.
obispo
0
service postgresql status

devuelve: 10 / main (puerto 5432): en línea

Estoy ejecutando Ubuntu 18.04

Marcos Galigarcia
fuente