sql >> Base de Datos >  >> RDS >> PostgreSQL

Conexión remota de PostgreSQL con pgAdmin

En primer lugar, pruebe si puede conectarse a la base de datos a través de psql :

psql -h ip_address -d name_of_the_database -U username

Si obtiene un error de conexión rechazada, tuvo que configurar algo incorrecto y verificar ¿Qué debo verificar si la conexión remota a PostgreSQL no funciona?

psql: could not connect to server: Connection refused Is the server running on host ip_address

¿Qué debo comprobar si la conexión remota a PostgreSQL no funciona?

  1. Verifique la configuración de autenticación en pg_hba.conf

    Por lo general, se encuentra en Linux - /etc/postgresql/version/main/pg_hba.conf .Debe permitir la autenticación del cliente para una IP específica desde todas las direcciones IP:

    # Database administrative login by Unix domain socket
    local     all            postgres        peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local     all            all             peer
    # IPv4 local connections:
    host     all             all             0.0.0.0/0               md5
    # IPv6 local connections:
    host     all             all             ::0/0                   md5
    #all ips
    host     all             all             all                     md5
    

    Más información sobre cómo configurar pg_hba.conf puede encontrar en documentación .

  2. Entonces deberías configurar la escucha en un puerto específico.

    Tienes que encontrar el postgresql.conf . Normalmente se encuentra /etc/postgresql/9.1/main/postgresql.conf ) archivo y cambie la línea con listen_address from:

    #listen_address = ''
    

    a (no olvide eliminar # que significa comentario):

    listen_address = '*'
    
  3. Después de cada paso, debe reiniciar el servicio de Postgresql:

    sudo service postgresql restart
    
  4. Después del paso 2, debería ver el puerto 5432 (o 5433) en la dirección de escucha después del comando netstat:

    netstat -ntlp
    
  5. Después de eso, debe abrir el puerto para PostgreSQL en el firewall:

    sudo ufw allow 5432
    

    Puede verificar la configuración del firewall con (debería ver 5432 en la lista):

    sudo ufw status
    
  6. Si alguno de los pasos anteriores no funciona, debe verificar si PostgreSQL no se está ejecutando en un puerto diferente (generalmente 5433) y repetir los pasos anteriores.

    Esto sucede muy a menudo cuando tiene más versiones de PostgreSQL en ejecución o actualiza la base de datos y olvidó detener la versión anterior de PostgreSQL.

Si tiene problemas para encontrar archivos de configuración, puede consultar este hilo ¿Dónde están mis archivos postgres *.conf? .