Não é possível conectar-se ao PostgreSQL DB Via pgAdmin

2

Então, eu instalei uma instalação mínima do Fedora 15 para criar um servidor para um aplicativo da web. Eu também instalei o PostgreSQL 9.1 em pgrpms.org. A instalação do PostgreSQL foi bem. Localmente, eu era capaz de iniciar, iniciar e psql para alterar a senha do postgres.

Agora, instalei o pgAdmin em um sistema Windows na mesma sub-rede. No entanto, não consigo me conectar.

Eu editei /var/lib/pgsql/9.1/data/postgresql.conf para definir listen_addresses = '*' . Eu editei /var/lib/pgsql/9.1/data/pg_hba.conf para permitir host all all 192.168.1.0/24 trust . Eu também reiniciei após as alterações ( service postgresql-9.1 restart )

O erro no pgAdmin é: não foi possível conectar-se ao servidor: A conexão expirou (0x0000274C / 10060) O servidor está executando no host "192.168.1.110" e aceitando conexões TCP / IP na porta 5432?

A resposta é sim. Não instalei um firewall e desativei o da minha estação de trabalho baseada no Windows. Eu sou capaz de ping e SSH no servidor. O tcpdump mostra a tentativa de conexão na porta 5432 do pgAdmin acontecer:

[root@cobalion yum.repos.d]# tcpdump port 5432
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:44.014920 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:28:47.023859 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
07:28:53.019464 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,nop,sackOK], length 0

Não sei onde procurar a seguir? Na superfície, parece que eu deveria ser capaz de me conectar. Alguma ideia? Posso de alguma forma verificar "dentro" de um servidor de postgresql em execução quais configurações foram carregadas?

    
por alphadogg 27.09.2011 / 13:47

1 resposta

0

Seu tcpdump praticamente confirma que iptables está descartando os pacotes no lado do servidor. tcpdump inspeciona os pacotes antes de serem tocados pelo firewall. Se o firewall não estava perdendo os pacotes e o postgres não estava funcionando, o kernel iria RST a tentativa de conexão:

07:39:14.878008 IP localhost.12343 > localhost.35259: Flags [R.], seq 0, ack 1980582372, win 0, length 0

e você recebe imediatamente uma conexão recusada em vez de um tempo limite.

A única outra coisa que posso pensar é se você definir um limite de conexão absurdamente baixo no servidor e ele já está cheio. Eu nunca tentei isso para ver o que aconteceria, embora eu tenha um pressentimento de que ele rejeitaria as conexões em vez de cronometrá-las com base no comportamento de vários sites com erros de db que eu corro o tempo todo. Você pode verificar o log do postgresql para ver se ele menciona a tentativa de conexão.

    
por 27.09.2011 / 14:50

Tags