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?

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.


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';

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


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.


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.


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


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í


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.


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


3

Desde la terminal puedes hacer:

\ conninfo

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

\?


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.


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í


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

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.