Habilitando o Acesso Remoto no PostgreSQL
Dando continuidade a essa empreitada de posts sobre o PostgreSQL, hoje estarei habilitando o acesso remoto no PostgreSQL.
Esse é um assunto muito pertinente para quem trabalha com este banco no ambiente Web. Muitas vezes, por mais comodidade/praticidade, realizamos o acesso remoto do banco por meio de alguma IDE – leia-se PgAdmin – só que para tal o Postgres tem que permitir seu acesso.
Este post foi pensado (e escrito em 2011) para a versão 8.5 do Postgres, verifique a versão que você está utilizando.
Por padrão o Postgres não vem configurado para aceitar conexões externas, e para habilitá-las temos que editar dois arquivos de configuração: pg_hba.conf e postgresql.conf
Estou com o pressuposto que você está no ambiente Linux, e para editar os arquivos iremos utilizar o comando “vi”.
Então, executando os comandos abaixo estaremos habilitando o Acesso Remoto no PostgreSQL:
Veja o comando abaixo onde iremos abrir um dos arquivos de configuração, e tenha atenção que este pode não ser o caminho exato onde seu arquivo esteja, dependo da versão do sistema operacional que você esteja utilizando, ou mesmo a distribuição (aqui estou utilizando o CentOS 6.0)
vi /var/lib/pgsql/data/pg_hba.conf
Pronto, agora você pode editar o arquivo, acrescente no final a seguinte linha:
host all all 0.0.0.0/0 md5
Nela estamos dizendo que todas (0.0.0.0/0) as conexões remotas (host) estão permitidas para todos os usuários! Cuidado! Eu sugiro que você coloque o seu IP para realizar as alterações e depois remova essa linha.
Alterando para um IP específico poderia ficar assim:
host all all 189.162.0.16/24 md5
Depois de adicionar a linha, saia do editor vi e salvando as alterações.
Agora vamos editar o segundo arquivo, mais fácil. Abra o arquivo postgresql.conf:
vi /var/lib/pgsql/data/postgresql.conf
Agora procure pela linha abaixo e remova o comentário (#), caso houver:
listen_addresses='localhost'
Troque por asterísco “*” para habilitar a conexão para todos ou coloque seu IP:
listen_addresses='189.162.0.16'
E uma última alteração, procure pela linha abaixo, e caso estiver comentada remova o comentário:
port = 5432
Pronto, agora seu PostgreSQL está configurado para aceitar conexões externas, dê o restart no processo dele e inicie seu trabalho!
service postgresql restart
Espero que ajude,
Referências:
Já fiz isso, mas mesmo assim não consigo realizar o acesso externo. Tem que fazer alguma coisa a mais?
Olá Otávio, qual versão do postgres vc está utilizando? Lembrou-se de reiniciar o serviço após a edição do arquivo?
Tentei de tudo aqui meu amigo, e também não consegui.
Deve ter faltado algum detalhe.
Olá Fernando, tudo certo?
Eu escrevi esse post em 2011, na época a versão do Postgres era a 8.5 se não me engano.
Verifique se nas versões atuais não existe nenhuma regra nova. Outro ponto a se considerar é se o arquivo de configurações que você editou é o mesmo que o postgres está usando, além de lembra-se de reiniciar o processo.
Caso você encontre outra solução, por favor, deixe aqui nos comentários para que possamos enriquecer o conteúdo.
Abraços!
Qual versão você está utilizando?