Trova il nome host e la porta utilizzando i comandi PSQL


150

Ho PSQL in esecuzione e sto cercando di ottenere un'applicazione perl che si collega al database. Esiste un comando per trovare la porta e l'host correnti su cui è in esecuzione il database?

Risposte:


57

La porta PostgreSQL predefinita è 5432. L'host su cui opera il database dovrebbe essere stato fornito dal tuo provider di hosting; Immagino che sarebbe lo stesso host del server web se non ne venisse specificato uno. In genere, questo viene configurato come localhost, presupponendo che il server Web e il server database siano sullo stesso host.


Ho riscontrato anche questo problema e ho provato la porta 5433, e questo funziona
Jonny Manowar

5
Questo in realtà non risponde alla domanda.
sk

@sk Leggi il contesto. L'OP non conosceva l'host e la porta per il loro database postgres. Possono connettersi con un psqlcomando di base , quindi ciò implica localhost:5432. A meno che qualcuno non sia diventato intelligente con env vars / aliases / etc. Non amo la mia risposta un decennio dopo, ma risolvere x invece di y va benissimo e in questo caso ha aiutato centinaia di persone.
Brad Koch,

228
SELECT *
FROM pg_settings
WHERE name = 'port';

2
Questo non funziona se hai più server nello stesso cluster, sfortunatamente ...
Vitor Baptista

2
Questo in realtà ti dà il numero di porta non l'host del server.
hd1,

2
@ hd1: E? La domanda era (anche) come ottenere il numero di porta. Ed è quello che restituisce la query.
a_horse_with_no_name

sì, ma se non riesci a connetterti al database, non puoi eseguirlo: P
jaydel

137

Questo comando ti fornirà il numero di porta di postgres

 \conninfo

Se postgres è in esecuzione su un server Linux, puoi anche usare il seguente comando

sudo netstat -plunt |grep postgres

OPPURE (se arriva come postmaster)

sudo netstat -plunt |grep postmaster

e vedrai qualcosa di simile come questo

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

in questo caso, il numero di porta è 5432, che è anche il numero di porta predefinito

link crediti


1
arriverà come postmaster per 5432.
codebased il

4
Questa è la risposta esatta. la risposta scelta è vera ma non correlata alla domanda.
Luis Martins,

42

select inet_server_addr(); ti dà l'indirizzo IP del server.


2
purtroppo questo non dà il nome host "live" se ci si connette tramite proxy ssh - continuo a ricevere "127.0.0.1"
Andrew Wolfe

8
Non ho ricevuto nulla:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
Trex,

Non ha dato il nome host
Kumar Vaibhav

15

select inet_server_port(); ti dà la porta del server.


3
Su bluehost questa query restituisce un campo vuoto quando in realtà la porta era 5432. Questa query non restituisce sempre il numero di porta.
Eric Leschinski,


12

Questo è un metodo non sql. Le istruzioni sono fornite sull'immagine stessa. Seleziona il server di cui vuoi trovare le informazioni e quindi segui i passaggi.

inserisci qui la descrizione dell'immagine


9

La porta postgresql è definita nel tuo postgresql.conf file.

Per me in Ubuntu 14.04 è: /etc/postgresql/9.3/main/postgresql.conf

All'interno c'è una linea:

port = 5432

La modifica del numero richiede il riavvio di postgresql affinché abbia effetto.


5

Puoi usare il comando in psql \conninfo che otterraiYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


3

Dal terminale puoi fare:

\ conninfo

Suggerirei di leggere una documentazione sul loro elenco completo di tutti i comandi usando:

\?


0

vai al "Terminale" e basta digitare

service postgres status

Nei risultati è possibile ottenere i dettagli della portaEsecuzione dei dettagli di postgres

Nel mio caso è in esecuzione sulla porta "5432" (impostazione predefinita).
Sto usando CentOS 7. Spero che questo aiuti.


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

Questo utilizza la variabile HOST integrata di psql, documentata qui

E funzioni di informazioni di sistema di postgres, documentate qui


Se ci si connette localmente, HOSTsarà la directory in cui risiede il socket del dominio UNIX, ad es /tmp.
vescovo,

0
service postgresql status

ritorna: 10 / main (porta 5432): online

Sto eseguendo Ubuntu 18.04

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.