Não é possível conectar PostgreSQL ao banco de dados remoto usando pgAdmin

StackOverflow https://stackoverflow.com/questions/1287067

  •  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?

Foi útil?

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.

  1. 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: arquivo

    listen_addresses = '*'

  2. 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.

  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top