2009-08-17 36 views
44

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.No se puede conectar PostgreSQL a la base de datos remota usando pgAdmin

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

+0

¿Aparece un error? si es así, ¿qué error? – krishna

+0

Esto no es realmente una pregunta de programación. Sin embargo, agregue una línea que diga "host all all 192.168.1.0/24 md5" en data/pg_hba.conf – nos

+0

¿Cuál es el error que está obteniendo? ¿Qué comando está ejecutando para conectarse a la base de datos desde un servidor diferente? ¿Qué estás pensando cambiar en postgresql.conf y pg_hba.conf? – Space

Respuesta

100

en realidad es un proceso de 3 pasos para conectarse a un servidor PostgreSQL remota a través de pgadmin3.

Nota: uso Ubuntu 11.04 y PostgreSQL 8.4.

  1. usted tiene que hacer PostgreSQL se esperan conexiones TCP entrantes remotas debido a los ajustes predeterminados permiten escuchar sólo para las conexiones en la interfaz de bucle de retorno. Para poder llegar al servidor de forma remota hay que añadir la siguiente línea en el archivo /etc/postgresql/8.4/main/postgresql.conf:

    listen_addresses = '*'

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

    host all all 0.0.0.0/0 md5

    ésta es una regla de control de acceso que permita que alguien inicie 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 los archivos de configuración que necesita para 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.

+5

Para iniciar el servidor PostgresSQL en ubuntu 'sudo /etc/init.d/postgresql stop' y' sudo /etc/init.d/postgresql start'. Busqué en Google esto Así que agrégalo aquí para las personas que no conocen el comando para reiniciar el servicio – ganesshkumar

+0

¡Muchas gracias! He estado buscando durante horas, y esta respuesta es lo que finalmente resolvió mi problema para PostgreSQL 9.5. El segundo paso en particular lo hizo. – Alexander

+1

En RedHat '/ var/lib/pgsql/9.4/data/pg_hba.conf' –

8

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

Trate de añadir la línea:

listen_addresses = * 

que le dirá PostgreSQL para escuchar las conexiones en todas las interfaces de red.

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

0

yo no tenga que cambiar mi archivo prostgresql.conf Pero, yo tenía que hacer lo siguiente en base a mi psql a través de línea de comandos se conecta y pgAdmin no se conecta con el RDS AWS.

Tuve mi RDS configurado como públicamente accesible. Me aseguré de que mi ACL y grupos de seguridad estaban abiertas y todavía un problema así, hice lo siguiente: sudo find . -name *.conf continuación sudo nano ./data/pg_hba.conf continuación se añadió a la parte superior de las directivas en el archivo pg_hba.conf host all all 0.0.0.0/0 md5 y pgAdmin inscrito automáticamente.

Esto también trabajó en el archivo pg_hba.conf host all all md5 sin ninguna dirección IP y esto también trabajó con mi dirección IP host all all <myip>/32 md5

Como nota al margen, mis RDS estaba en mi defecto VPC. 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.

0

Para Red Hat Linux

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

pgsql9 es la carpeta para la versión de postgres instalado, puede ser diferente para otros

cambió listen_addresses = '*' de 'localhost' listen_addresses = y luego

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