remoto - crear usuario postgresql
No se puede conectar a postgres desde el host remoto (4)
Tengo un servidor de base de datos (192.168.1.50) ejecutando postgres. Creé una base de datos llamada "testdb" y un usuario "testuser" con la contraseña "testuserpw".
Localmente, puedo conectarme a la base de datos usando:
psql -d testdb -U testuser
Cuando emito el comando desde otro host (192.168.1.60):
psql -h 192.168.1.50 -d testdb -U testuser
Tengo el error:
psql: could not connect to server: Connection refused
Is the server running on host "192.168.1.50" and accepting
TCP/IP connections on port 5432?
Alguna idea ?
¿El firewall está permitiendo el paso de las conexiones? O bien, compruebe si pg_hba.conf
permite la conexión desde direcciones que no sean localhost.
En Ubuntu, noté que el acceso remoto en algún momento dejó de funcionar (actualmente usa 9.1.9). La razón es que Postgres ya no se inicia con el modificador -i [1], por lo que no importa lo que configure para listen_addresses, se ignorará.
Afortunadamente, agregar la siguiente línea a /etc/environment
resuelve el problema después de cerrar la sesión y volver a iniciarla (o reiniciar):
PGOPTIONS="-i"
Ver [2] para más opciones. Tenga en cuenta que agregar esto a /etc/postgresql/9.1/main/environment
NO funcionó para mí.
Ahora, cuando hago nmap ip-of-my-remote-server
finalmente obtengo esto de nuevo:
5432/tcp open postgresql
¡Hurra!
[1] http://www.postgresql.org/docs/9.1/static/runtime-config-short.html
[2] http://www.postgresql.org/docs/9.1/static/libpq-envars.html
Listen_address configvar en postgresql.conf no es la única forma de que Postgres escuche en las direcciones IP (o direcciones) no locales.
Use la opción "-o -h *" si inicia postgres desde pg_ctl, de lo contrario agregue "-h" "*" a la línea de comando postgres, como por ejemplo
/ usr / local / pgsql / bin / postgres -D / pg / data "-h" "*"
Por supuesto, los datos / pg / deben cambiarse a su ruta de datos actual.
Esto es especialmente útil cuando se experimenta.
Compruebe la configuración de listen_addresses
en su archivo postgresql.conf
. Muchas distribuciones lo hacen predeterminado a 127.0.0.1, es decir, solo escucha las conexiones provenientes de localhost. Se debe establecer en ''*''
para escuchar las conexiones en todas las interfaces.
Si aún tiene problemas, use lsof
para ver qué sockets de red está escuchando el proceso postgres.