remoto - No se puede conectar PostgreSQL a la base de datos remota usando pgAdmin
postgresql descargar español (4)
Instalé PostgreSQL en mi servidor local (Ubuntu) con IP 192.168.1.10. Ahora, intento 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.
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 = ''*''
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.
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.
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 <myip>/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
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.