Encontre o nome do host e a porta usando comandos PSQL

150

Eu tenho o PSQL em execução e estou tentando obter um aplicativo perl conectado ao banco de dados. Existe um comando para localizar a porta e o host atuais nos quais o banco de dados está sendo executado?

jamesatha
fonte

Respostas:

57

A porta padrão do PostgreSQL é 5432. O host em que o banco de dados está operando deveria ter sido fornecido pelo seu provedor de hospedagem; Eu acho que seria o mesmo host que o servidor web, se um não fosse especificado. Normalmente, isso seria configurado como host local, supondo que o servidor da Web e o servidor de banco de dados estejam no mesmo host.

Brad Koch
fonte
Eu encontrei este problema também, e tentando 5433 porto, e isso está funcionando
Jonny Manowar
5
Na verdade, isso não responde à pergunta.
sk
@sk Leia o contexto. O OP não conhecia o host e a porta do banco de dados postgres. Eles podem se conectar com um psqlcomando básico , o que implica localhost:5432. A menos que alguém seja esperto com env vars / aliases / etc. Não adoro minha resposta uma década depois, mas resolver x em vez de y é perfeitamente adequado e, nesse caso, ajudou centenas de pessoas.
Brad Koch
227
SELECT *
FROM pg_settings
WHERE name = 'port';
um cavalo sem nome
fonte
2
Isso não funciona se você tiver vários servidores no mesmo cluster, infelizmente ...
Vitor Baptista
2
Na verdade, isso fornece o número da porta, não o host do servidor.
hd1
2
@ hd1: E? A questão era (também) como obter o número da porta. E é isso que a consulta retorna.
A_horse_with_no_name
sim, mas se você não conseguir se conectar ao banco de dados, não poderá executar isso: P
jaydel
137

Este comando fornecerá o número da porta do postgres

 \conninfo

Se o postgres estiver em execução no servidor Linux, você também poderá usar o seguinte comando

sudo netstat -plunt |grep postgres

OU (se vier como postmaster)

sudo netstat -plunt |grep postmaster

e você verá algo semelhante como este

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

nesse caso, o número da porta é 5432, que também é o número da porta padrão

link de créditos

Khaino
fonte
1
está vindo como postmaster para 5432.
codebased
4
Esta é a resposta certa. a resposta escolhida é verdadeira, mas não está relacionada à pergunta.
Luis Martins
42

select inet_server_addr(); fornece o endereço IP do servidor.

Kaarel
fonte
2
infelizmente isso não dá o nome do host "ao vivo" se você estiver conectando via proxy ssh - Eu continuo recebendo "127.0.0.1"
Andrew Wolfe
8
Não recebi nada:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex
Não deu o nome de host
Kumar Vaibhav
15

select inet_server_port(); fornece a porta do servidor.

Andromida
fonte
3
No bluehost, essa consulta retorna um campo em branco quando, na realidade, a porta era 5432. Essa consulta nem sempre retorna o número da porta.
Eric Leschinski
13
select inet_server_addr( ), inet_server_port( );
gerardw
fonte
1
Como isso é diferente de Kaarel Kitsemets resposta e de Andromida resposta ?
Todos os trabalhadores têm Essencial
1
Ele responde à pergunta que foi feita como uma solução única de copiar e colar.
gerardw
12

Este é o método não-sql. As instruções são dadas na própria imagem. Selecione o servidor sobre o qual deseja encontrar as informações e siga as etapas.

insira a descrição da imagem aqui

bonCodigo
fonte
9

A porta postgresql é definida no seu postgresql.conf arquivo.

Para mim no Ubuntu 14.04 é: /etc/postgresql/9.3/main/postgresql.conf

Dentro há uma linha:

port = 5432

Alterar o número lá requer a reinicialização do postgresql para que ele entre em vigor.

Eric Leschinski
fonte
5

Você pode usar o comando no psql, \conninfo que receberáYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".

Intra
fonte
3

No terminal você pode fazer:

\ conninfo

Eu sugeriria ler uma documentação em sua lista exaustiva de todos os comandos usando:

\?

Vinayak Mishra
fonte
0

vá para o "Terminal" e digite

service postgres status

Nos resultados, você pode obter os detalhes da portaExecutando detalhes do postgres

No meu caso, está sendo executado na porta "5432" (padrão).
Estou usando o CentOS 7.Espero que isso ajude.

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

Isso usa a variável HOST incorporada no psql, documentada aqui

E funções de informações do sistema do postgres, documentadas aqui

professorcolm
fonte
Se você estiver se conectando localmente, HOSTserá o diretório em que seu soquete de domínio UNIX reside, por exemplo /tmp.
bispo
0
service postgresql status

retornos: 10 / principal (porta 5432): on-line

Estou executando o Ubuntu 18.04

Marcos Galigarcia
fonte