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?

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.


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

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


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.


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.


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


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


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.


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


3

No terminal você pode fazer:

\ conninfo

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

\?


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.


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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.