Determinando a porta do PostgreSQL

12

Eu sei que por padrão o PostgreSQL escuta na porta 5432, mas qual é o comando para determinar realmente a porta do PostgreSQL?

Configuração: Ubuntu 9.10 com PostgreSQL 8.4

Matthew Rankin
fonte

Respostas:

26

lsof e nmap são soluções, mas não são instalados por padrão. O que você quer é netstat (8).

sudo netstat -plunt |grep postgres
ptman
fonte
O Linux supostamente está migrando para fora da rota / ifconfig / netstat. O comando equivalente moderno é ss -plung|grep postgres(note, mesmas bandeiras)
ptman
1
Não há gmais sinalizador para o sscomando. Tente:ss -pa |grep postgresql
GrayedFox
1
@GrayedFox graças para a atualização, mas para mim que dá o nome do porto, não o número, então eu acho que ss -pan |grep postgresé mais adequado
ptman
6

O utilitário PostgreSQL pg_lsclusters mostra informações sobre a configuração e o status de todos os clusters, incluindo o número da porta.

$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5433 online postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log

Isso também tem a vantagem de não exigir privilégios 'sudo' para executar.

Nos sistemas Debian e Ubuntu, o comando pg_lsclusters é fornecido pelo pacote postgresql-common, que deve ser instalado por padrão com o servidor postgresql.

Dan Stangel
fonte
3
Observe que pg_lsclustersé um Ubuntu-ism e não é um comando padrão do Postgres. Ele vai trabalhar para este caso, mas não é uma solução de uso geral ...
voretaq7
2

Se você quiser fazer isso de dentro do banco de dados, basta "SHOW port". Mas isso pressupõe que você foi capaz de se conectar a ele, pelo menos localmente ...

Magnus Hagander
fonte
1

Se você estiver pesquisando na máquina local, eu usaria o comando lsof para verificar a porta que o postgresql está usando

lsof -p <postgres_process_id>
Dominik
fonte
Talvez você precise executar isso como root.
Michael Mior
1

Eu tenho máquinas com várias instâncias do postgres em execução - e também tenho o problema de tentar combinar o banco de dados correto com cada porta. Eu costumo fazer:

$ ps aux | grep  postgres | grep -v 'postgres:'

E então, para cada uma das instâncias retornadas, procure o diretório ( -Dargumento) e:

$ sudo grep port $DIR/postgresql.conf
Joe H.
fonte
0

Aqui está uma solução que eu encontrei:

sudo apt-get install nmap
sudo nmap localhost | grep postgresql

Se você deseja pesquisar uma máquina não local, basta alterar localhostpara o endereço IP do servidor.

Matthew Rankin
fonte