Acesse remotamente o banco de dados postgresql com o FDW [resolvido]

1

Eu tenho dois servidores hospedados em diferentes locais, com o Postgresql.

Eu quero acessar os dados do Postgresql do servidor 1 (CentOS 7), pelo postgresql FDW do servidor 2 (Ubuntu 16).

O problema é:

psql: could not connect to server: Connection refused Is the server running on host "xxx.xxx.xxx.xxx" and accepting TCP/IP connections on port 5432?

Eu editei o arquivo postgresql.conf com listenaddresses='*' e o arquivo pghba.conf com host all all 0.0.0.0/0 md5

ainda não funciona, então pensei que isso poderia ser causado pelo iptables. Eu adiciono estas regras:

iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 5432 -j ACCEPT

Ainda não funciona. Precisa de conselhos.

Obrigado!

(desculpe pelo meu inglês)

    
por Splendens 07.02.2018 / 12:55

1 resposta

0

Do ponto de vista da rede, o servidor 2 é o cliente e o servidor 1 é o servidor. O sistema operacional do cliente relata Conexão recusada ao tentar se conectar a xxx.xxx.xxx.xxx:5432.

Geralmente, esse erro não é devido a um firewall, porque os firewalls tendem a eliminar pacotes, o que produz Tempo limite da conexão .

Também não é devido a uma falha de autenticação com base no host postgres, pois eles produzem mensagens de erro completamente diferentes e específicas.

Algumas razões plausíveis:

  • O PostgreSQL não está escutando na porta 5432 no servidor 1. Isso pode ser confirmado com netstat -tlnp | grep 5432 run as root. Observe que o parâmetro de configuração é listen_addresses , não listenaddresses . Também postgres precisam ser reiniciados após essa mudança. Você pode verificar os logs do servidor postgres para confirmar se funcionou ou verificar o motivo pelo qual isso não ocorre.

  • A configuração de rede é tal que o servidor 1 não pode ser alcançado a partir do servidor 2 com o endereço xxx.xxx.xxx.xxx . Os pacotes são roteados em outro lugar, em uma interface de rede, onde 5432 como uma porta TCP não está vinculada a um serviço. Por exemplo, se o servidor 1 for virtualizado, espera-se que não possa ser acessado diretamente pelo endereço de seu host.

por Daniel Vérité 08.02.2018 / 13:25