Error PostgreSQL “Could not connect to server”: cómo resolver el problema
El error de PostgreSQL “Could not connect to server” puede ocurrir por varias razones. A menudo basta con reiniciar el sistema gestor de bases de datos de código abierto o ajustar la configuración TCP/IP.
Requisitos
- Servidor cloud funcionando con Linux (CentOS 7 o Ubuntu 16.04)
- PostgreSQL instalado y funcionando.
- Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
- Almacenamiento SSD NVMe ultrarrápido
- Incluye: edición Plesk Web Host
“Could not connect to server: No such file or directory”
El error de PostgreSQL “Could not connect to server: No such file or directory” suele significar que PostgreSQL no se está ejecutando. Sin embargo, el error suele estar relacionado con problemas de permisos.
En primer lugar, utiliza el comando systemctl status postgresql para comprobar el estado de PostgreSQL:
user@localhost:~# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: **active** (exited) since Thu 2017-03-23 21:34:03 UTC; 14s ago
Main PID: 24289 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
Mar 23 21:34:03 localhost.localdomain systemd[1]: Starting PostgreSQL RDBMS...
Mar 23 21:34:03 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.
Mar 23 21:34:08 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.
Si el estado se muestra como activo, reinicia PostgreSQL con el comando systemctl restart postgresql. Si el estado se muestra como inactivo, inicia PostgreSQL con el comando systemctl start posgresql.
Si un reinicio no soluciona el problema, mira los permisos de tu directorio con la ruta /var/lib/postgresql/9.6/main. El número de la versión 9.6 puede variar según tu instalación. Se supone que los permisos de las carpetas están establecidos en “0700” y los de los archivos en “0600”. Esto significa que las carpetas deben tener permisos de lectura, escritura y ejecución, y los archivos deben tener permisos de lectura y escritura. Utiliza el comando ls en la ruta anterior para mostrar los permisos actuales.
Si descubres que los permisos son diferentes, ejecuta los siguientes comandos en la línea de comandos:
sudo chown -R postgres:postgres /var/lib/postgresql/9.6/
sudo chmod -R u=rwX,go= /var/lib/postgresql/9.6/
Reinicia PostgreSQL como se indica arriba.
“Could not connect to server: Connection refused”
Otra variante del error de PostgreSQL es “Could not connect to server: Connection refused”.
En primer lugar, utiliza el comando systemctl-status postgresql para verificar que PostgreSQL se está ejecutando. Para asegurarte de que PostgreSQL se está ejecutando, también puedes reiniciarlo con systemctl restart postgresql.
Si esto no soluciona el problema, la causa más probable de este error es que PostgreSQL no se ha configurado para permitir conexiones TCP/IP.
Para corregir esto, edita tu archivo posgresql.conf. Estos pueden encontrarse en una de las siguientes rutas de archivos, dependiendo de tu distribución de Linux:
- Ubuntu 16.04: sudo nano /etc/postgresql/9.5/main/posgresql.conf
- CentOS 7: sudo nano /usr/pgsql-10/share/postgresql.conf
Comprueba la configuración de listen_address. Para permitir las conexiones TCP/IP, debe ajustarse a “0.0.0.0” (para permitir las conexiones desde todas las direcciones IP) o a la dirección IP específica del servidor que permitirá conectarse.
Si esta configuración se deja en blanco o se establece como localhost, PostgreSQL no permitirá conexiones TCP/IP externas. Esto también corresponde a la configuración por defecto de PostgreSQL.
PostgreSQL no podrá conectarse al servidor cuando la conexión esté bloqueada por un firewall. Ten en cuenta que todos los servidores en la nube se ven afectados por defecto por las políticas de los firewalls, que se controla desde el Cloud Panel.
- Copias de seguridad automáticas y fácil recuperación
- Gestión y planificación intuitiva
- Protección contra las amenazas basadas en IA
- Incluye crédito inicial de $5250 el primer mes