No se puede conectar PostgreSQL a la base de datos remota usando pgAdmin

Instalé PostgreSQL en mi servidor local (Ubuntu) con IP 192.168.1.10. Ahora, bash acceder a la base de datos desde mi máquina cliente (Ubuntu) con IP 192.168.1.11 con pgAdmin.

Sé que tengo que hacer cambios en postgresql.conf y pg_hba.conf para permitir que el cliente se conecte. ¿Podrías guiarme?

En realidad, es un proceso de 3 pasos para conectarse a un servidor PostgreSQL de forma remota a través de pgAdmin3.

Nota: uso Ubuntu 11.04 y PostgreSQL 8.4.

  1. Tienes que hacer que PostgreSQL esté atento a las conexiones TCP remotas entrantes porque la configuración predeterminada solo permite escuchar las conexiones en la interfaz de bucle invertido. Para poder acceder al servidor de forma remota, debe agregar la siguiente línea en el archivo /etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = ‘*’

  2. PostgreSQL rechaza por defecto todas las conexiones que recibe desde cualquier dirección remota, tiene que relajar estas reglas agregando esta línea a /etc/postgresql/8.4/main/pg_hba.conf:

    alojar todo 0.0.0.0/0 md5

    Esta es una regla de control de acceso que permite a cualquier persona iniciar sesión desde cualquier dirección si puede proporcionar una contraseña válida (la palabra clave md5). Puede usar la red / máscara necesaria en lugar de 0.0.0.0/0.

  3. Cuando haya aplicado estas modificaciones a sus archivos de configuración, deberá reiniciar el servidor PostgreSQL. Ahora es posible iniciar sesión en su servidor de forma remota, utilizando el nombre de usuario y la contraseña.

Si está utilizando PostgreSQL 8 o superior, es posible que necesite modificar la configuración /etc/postgresql/8.4/main/postgresql.conf en /etc/postgresql/8.4/main/postgresql.conf .

Intenta agregar la línea:

 listen_addresses = * 

que le indicará a PostgreSQL que escuche las conexiones en todas las interfaces de red.

Si no se establece explícitamente, esta configuración se establece de manera predeterminada en localhost que significa que solo aceptará conexiones de la misma máquina.

No tuve que cambiar mi archivo prostgresql.conf, pero tuve que hacer lo siguiente en función de que mi psql a través de la línea de comando se conectaba y pgAdmin no se conectaba en RDS con AWS.

Tuve mi RDS configurado en Publicly Accessible. Me aseguré de que mi ACL y los grupos de seguridad estuvieran abiertos y todavía presentaran problemas, así que hice lo siguiente: sudo find . -name *.conf sudo find . -name *.conf luego sudo nano ./data/pg_hba.conf luego se agregó a la parte superior de las directivas en el host del archivo pg_hba.conf host all all 0.0.0.0/0 md5 y pgAdmin me host all all 0.0.0.0/0 md5 sesión automáticamente.

Esto también funcionó en el host del archivo pg_hba.conf, host all all md5 sin ninguna dirección IP, y esto también funcionó con mi host de la dirección IP host all all /32 md5

Como nota al margen, mi RDS estaba en mi VPC predeterminada. Tenía una instancia de RDS idéntica en mi VPC no predeterminada con un grupo de seguridad idéntico, ACL y configuraciones de grupos de seguridad en mi VPC predeterminada y no pude hacer que funcionara. No estoy seguro por qué pero, eso es por otro día.

Para redhat linux

 sudo vi /var/lib/pgsql9/data/postgresql.conf 

pgsql9 es la carpeta para la versión de postgres instalada, puede ser diferente para los demás

cambiado listen_addresses = ‘*’ from listen_addresses = ‘localhost’ y luego

 sudo /etc/init.d/postgresql stop sudo /etc/init.d/postgresql start