
Necesito acceder a una base de datos postgresql desde una máquina remota en un VPS en DigitalOcean con 12.10 y postgresql 9.1.
¿Cómo hago esto? Noté que el puerto 5432 está cerrado, ¿cómo lo abro?
Respuesta1
Para abrir el puerto 5432 edite su /etc/postgresql/9.1/main/postgresql.conf
y cambie
listen_addresses='localhost'
a
listen_addresses='*'
y reinicie su DBMS
invoke-rc.d postgresql restart
ahora puedes conectarte con
$ psql -h hostname -U username -d database
Si no puede autenticarse, debe otorgarle a su usuario derechos de acceso a su base de datos.
Edita tu
/etc/postgresql/9.1/main/pg_hba.conf
y añadir
host all all all md5
(Esto es para un acceso amplio y abierto. Para un control más estricto, consulte eldocumentación pg_hba.confy ajustar según sus necesidades).
De ahora en adelante también necesitarás una recarga.
invoke-rc.d postgresql reload
No hace falta mencionar que esta es una configuración básica, ahora deberías pensar en modificar tu firewall y mejorar la seguridad de tu DBMS.
Respuesta2
Esto ya no funciona, si es que alguna vez lo hizo:
alojar todos todos * md5
Las posibles líneas correctas para esto son:
alojar todo el rango 0.0.0.0/0 md5 #ipv4
alojar todo todo ::0/0 md5 #ipv6 rango
host todo todo todo md5 #todas ip
Respuesta3
Para el mensaje "el servidor no escucha", lo que me pasó fue que no borro # en el archivo postgresql.conf, quiero decir:
#listen_addresses='localhost'
a:
direcciones_escucha='*'
(Lo siento por mi ingles).
Respuesta4
Después de la configuración, debe configurar:
En/etc/postgresql/10/main/postgresql.conf
# Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
En/etc/postgresql/10/main/pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 md5
Reinicie su servidor:
sudo /etc/init.d/postgresql restart