quinta-feira, 8 de maio de 2014

Como permitir conexão remota com banco de dados PostgreSQL usando psql



Quando você instala o PostgreSQL, por conexão padrão para o banco de dados usando o TCP / IP não é permitido.
Quando você tentar se conectar de um cliente para um banco de dados PostgreSQL remoto usando o comando psql, você pode obter "psql: não pôde se conectar ao servidor: Conexão recusada" mensagem de erro.
No exemplo a seguir, a partir de uma máquina cliente, que está tentando se conectar a um banco de dados PostgreSQL que está sendo executado no servidor 192.168.102.1. Como você pode ver a partir da saída, ele diz claramente que o banco de dados PostgreSQL remoto não está aceitando conexão.
# Psql-U postgres-h 192.168.102.1
psql: não pôde se conectar ao servidor: Conexão recusada
        É o servidor em execução no host "192.168.102.1" e aceitando
        Conexões TCP / IP na porta 5432?
Para ativar a conexão TCP / IP para o banco de dados PostgreSQL, você precisa seguir os dois passos abaixo.

1. Modificar pg_hba.conf para adicionar Registro Autenticação do cliente

No servidor de banco de dados PostgreSQL, por padrão, você verá os seguintes registros no final do arquivo / var / lib / pgsql / data / pg_hba.conf. Como indicado abaixo, aceita somente conexões do localhost.
# IPv4 conexões locais:
acolher todos todos 127.0.0.1/32 confiança
# IPv6 conexões locais:
acolher todos todos :: 1/128 ident
Adicione a seguinte linha ao servidor pg_hba.conf. Isto irá permitir a conexão de "192.168.101.20" endereço IP (Este é o cliente, no nosso exemplo). Se você quer para permitir a conexão de vários computadores clientes em uma rede específica, especifique o endereço de rede aqui no formato CIDR-endereço.
# vi  /var/lib/pgsql/data/pg_hba.conf
acolher todos todos 192.168.101.20/24 confiança


A seguir, são vários formatos de registro de autenticação do cliente suportado no arquivo pg_hba.conf. Nós estamos usando o formato n º 2 da lista.
  • usuário de banco de dados local, autenticação de método [opção_de_autenticação]
  • usuário de banco de dados de host CIDR endereço autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostssl CIDR endereço autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostnossl CIDR endereço autenticação de método [opção_de_autenticação]
Em vez de formato "CIDR-address", você também pode especificar o endereço IP ea máscara de rede em campos separados usando o formato do registro seguinte.
  • sediar usuário de banco de dados IP-endereço IP-máscara autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostssl endereço IP IP-máscara autenticação de método [opção_de_autenticação]
  • usuário de banco de dados hostnossl endereço IP IP-máscara autenticação de método [opção_de_autenticação]

2. Alterar o endereço Ouça em postgresql.conf

No servidor de banco de dados PostgreSQL, por padrão, o endereço de escuta será localhost no arquivo postgresql.conf, como mostrado abaixo.
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = 'localhost'
Modifique esta linha e dar *. Se você tiver várias interfaces no servidor, você também pode especificar uma interface específica para ser ouvido.
# grep listen /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'

3. Teste a Conexão Remota

Agora, faça o login para o 192.168.101.20 máquina cliente, e realizar a conexão remota psql para o servidor de banco de dados PostgreSQL (192.168.102.1), como mostrado abaixo.Desta vez, ele deve funcionar.
# Psql-U postgres-h 192.168.102.1
Bem-vindo ao psql 8.1.11 (servidor de 8.4.18), o terminal interativo do PostgreSQL.
postgres = #
Além disso, se você não quer especificar o nome da máquina no parâmetro da linha de comando de cada vez, você pode configurar o banco de dados PostgreSQL endereço IP remoto no ambiente PGHOST nome da variável, como mostrado abaixo.
# Exportação PGHOST = 192.168.102.1
# psql -U postgres
Bem-vindo ao psql 8.1.11 (servidor de 8.4.18), o terminal interativo do PostgreSQL.
postgres = #

Nenhum comentário:

Postar um comentário