Estou tentando configurar um banco de dados PostgreSQL em uma máquina Ubuntu. Eu gostaria de poder acessá-lo usando pgAdmin3 de uma máquina remota. Como configuro isso?
Eu instalei o banco de dados PostgreSQL no Ubuntu usando:
sudo apt-get install postgresql
No meu /etc/postgresql/9.1/main/pg_hba.conf
tenho esta linha:
host all all all password
portanto, ele deve aceitar conexões de todos os endereços IPv4 e as senhas devem ser enviadas em texto não criptografado (isso é por motivos de desenvolvimento).
Se eu executar este comando para ver quais serviços estão sendo executados:
sudo netstat -tulpn
Eu posso ver estas linhas, que estão mostrando que o PostgreSQL está aceitando conexões na porta padrão:
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
3561/postgres
Quando tento me conectar a este servidor PostgreSQL de um computador remoto na mesma rede local, recebo esta mensagem de erro:
Servidor não escuta
O servidor não aceita conexões: a biblioteca de conexões relata
não foi possível conectar ao servidor: Conexão recusada O servidor está sendo executado no host "10.0.1.7" e aceita conexões TCP/IP na porta 5432?
Eu usei postgres
como nome de usuário e sem senha. Mas eu também tentei com postgres
como senha. No servidor local eu posso fazer login usando:
sudo -u postgres psql postgres
Como posso me conectar a um banco de dados PostgreSQL em execução no Ubuntu a partir de uma máquina remota usando o pgAdmin3?
A linha em seu relatório netstat mostra que o banco de dados está escutando apenas em localhost:5432 (127.0.0.1) para conexões tcp de entrada.
Portanto, ele só pode aceitar conexões tcp locais, independentemente de quais permissões você especificou em pg_hba.conf. pg_hba.conf especifica apenas conexões permitidas, mas não especifica quais interfaces seu serviço irá escutar.
Os endereços nos quais o servidor escuta são especificados com o GUC listen_addresses em postgresql.conf . Se você deseja que o servidor escute conexões remotas, você deve especificar o(s) ip(s) em que deseja que ele escute ou
*
escute em todas as interfaces disponíveis no host.Para que seu servidor postgresql escute em todas as interfaces do host, você deve ter a seguinte linha em postgresql.conf: