Não é possível conectar PostgreSQL ao banco de dados remoto usando pgAdmin
-
18-09-2019 - |
Pergunta
Eu instalei PostgreSQL no meu servidor local (Ubuntu) com IP 192.168.1.10. Agora, eu estou tentando acessar o banco de dados da minha máquina cliente (Ubuntu) com IP 192.168.1.11 com pgAdmin.
Eu sei que tenho de fazer mudanças no postgresql.conf e pg_hba.conf para permitir que o cliente se conectar. Você poderia por favor me guiar?
Solução
Na verdade, é um processo de 3 etapas para conectar a um servidor PostgreSQL remotamente através pgadmin3.
Nota: eu uso Ubuntu 11.04 e PostgreSQL 8.4.
-
Você tem que fazer PostgreSQL escuta para conexões TCP remoto de entrada porque as configurações padrão permitem a escutar somente para conexões na interface loopback. Para ser capaz de alcançar o servidor remotamente você tem que adicionar a seguinte linha para o
/etc/postgresql/8.4/main/postgresql.conf:
arquivolisten_addresses = '*'
-
PostgreSQL por padrão se recusa todas as ligações recebidas a partir de qualquer endereço remoto, você tem que relaxar estas regras, adicionando esta linha ao
/etc/postgresql/8.4/main/pg_hba.conf:
anfitrião todos todos 0.0.0.0/0 md5
Esta é uma regra de controle de acesso que permitem o login ninguém a partir de qualquer endereço se ele pode fornecer uma senha válida (a palavra-chave md5). Você pode usar rede necessária / mascarar vez de 0.0.0.0/0.
-
Quando você aplicou essas modificações em sua configuração arquivos você precisará reiniciar o servidor PostgreSQL. Agora é possível para acessar o servidor remotamente, usando o nome de usuário e senha.
Outras dicas
Se você estiver usando PostgreSQL 8 ou superior, você pode precisar modificar a configuração listen_addresses
em /etc/postgresql/8.4/main/postgresql.conf
.
Tente adicionar a linha:
listen_addresses = *
que irá dizer PostgreSQL para escutar para conexões em todas as interfaces de rede.
Se não definir explicitamente, faltas esta definição para localhost
o que significa que só aceita ligações a partir da mesma máquina.
Eu não tenho que mudar meu arquivo prostgresql.conf mas, eu tinha que fazer o seguinte com base na minha psql via linha de comando estava se conectando e pgAdmin não conectar em RDS com AWS.
Eu tinha meus RDS definida para acessível ao público. Tenho a certeza a minha ACL e grupos de segurança estavam abertas e ainda problema assim, eu fiz o seguinte:
sudo find . -name *.conf
sudo nano ./data/pg_hba.conf
seguida
então adicionado ao topo de directivas em host all all 0.0.0.0/0 md5
arquivo pg_hba.conf
e pgAdmin me automaticamente conectado.
Este também trabalhou no arquivo pg_hba.conf
host all all md5
sem qualquer endereço IP e isso também trabalhou com o meu endereço IP host all all <myip>/32 md5
Como uma nota lateral, meus RDS estava na minha VPC padrão. Eu tive uma instância RDS idêntica na minha VPC não-padrão com grupo de segurança idênticos, ACL e configurações de grupo de segurança para o meu padrão VPC e eu não poderia fazê-lo funcionar. Não sei por que, mas isso é para outro dia.
No terminal do Linux tente o seguinte:
-
sudo service postgresql start
: para iniciar o servidor -
sudo service postgresql stop
: parar de te servidor -
sudo service postgresql status
: verificar o status do servidor
Para RedHat Linux
sudo vi /var/lib/pgsql9/data/postgresql.conf
pgsql9 é a pasta para a versão postgres instalado, pode ser diferente para os outros
mudado listen_addresses = '*' a partir de listen_addresses = ‘localhost’ e depois
sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql start
Verifique se o seu firewall. Quando você desativá-lo, então você pode se conectar. Se você quer / não pode desativar o firewall, adicione uma regra para a sua conexão remota.