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