Pregunta

Estoy tratando de configurar una base de datos PostgreSQL en una máquina Ubuntu. Me gustaría poder acceder a él usando PGADmin3 desde una máquina remota. ¿Cómo configuro esto?

He instalado la base de datos PostgreSQL en Ubuntu usando:

sudo apt-get install postgresql

En mi /etc/postgresql/9.1/main/pg_hba.conf tengo esta línea:

host    all    all    all    password

Por lo tanto, debe aceptar conexiones de todas las direcciones IPv4 y las contraseñas deben enviarse en texto claro (esto es por razones de desarrollo).

Si ejecuto este comando para ver qué servicios se están ejecutando:

sudo netstat -tulpn

Puedo ver estas líneas, eso muestra que PostgreSQL está aceptando conexiones en el puerto predeterminado:

tcp    0    0    127.0.0.1:5432    0.0.0.0:*    LISTEN
3561/postgres

Cuando intento conectarme a este servidor PostgreSQL desde una computadora remota en la misma red local, recibo este mensaje de error:

El servidor no escucha

El servidor no acepta conexiones: la biblioteca de conexión informa

No se pudo conectar al servidor: la conexión rechazada es el servidor que se ejecuta en el host "10.0.1.7" y aceptar conexiones TCP/IP en el puerto 5432?

solía postgres como nombre de usuario y sin contraseña. Pero también he intentado con postgres como contraseña. En el servidor local puedo iniciar sesión usando:

sudo -u postgres psql postgres

¿Cómo puedo conectarme a una base de datos PostgreSQL que se ejecuta en Ubuntu desde una máquina remota usando PGADmin3?

¿Fue útil?

Solución

La línea en su informe NetStat muestra que la base de datos solo está escuchando en LocalHost: 5432 (127.0.0.1) para las conexiones TCP entrantes.

Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name
tcp        0      0 127.0.0.1:5432  0.0.0.0:*        LISTEN  3561/postgres

Por lo tanto, solo puede aceptar conexiones TCP locales independientemente de los permisos que haya especificado en PG_HBA.Conf. PG_HBA.Conf solo especifica las conexiones permitidas, pero no especifica qué interfaces escuchará su servicio.

Las direcciones en las que el servidor escucha se especifica con el escuchar_addresses guc en postgresql.conf. Si desea que el servidor escuche las conexiones remotas, debe especificar la (s) IP (s) en la que desea que escuche o * para escuchar todas las interfaces disponibles en el host.

Para que su servidor PostgreSQL escuche en todas las interfaces en el host, debe tener la siguiente línea en PostgreSQL.Conf:

listen_addresses = '*'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top