Buenas noches, hace unos días me salió este error al pasar al capítulo de base de datos con Postgresql.
An exception occured in driver: SQLSTATE[08006] [7] could not connect to server: Permission denied. Is the server running on host "192.168.100.51" and accepting TCP/IP connections on port 5432?
Y lo posteo con la solución que encontré luego de varias horas :)
Primero revisé mi configuración de PosgreSQL:
pg_hba.config # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.100.0/24 md5
Revisar si otras IP de tu LAN pueden acceder al servidor PosgreSQL.
pg_posgres.conf listen_addresses = '*' port = 5432
Después, verificar que el parámetro listen_addresses = '*'
no esté comentado con #
. Esto permite al servidor recibir conexiones desde cualquier otro IP.
Y el parámetro port = 5432
, verificar que no esté comentado con #
. Indica el puesto por donde se conectan al PostgreSQL.
Cambiar esos datos y reiniciar el servicio del PostgreSQL. Hasta ahí y todo OK.
Pero no olvidar este paso importante por el cual me salía el error anterior :( Después de mucha búsqueda encontré que debía desactivar el SELinux, que es el módulo de seguridad de Linux, o en todo caso configurar para que aceptara las conexiones de PostgreSQL.
Como no soy muy experto en el tema, entré a la consola del servidor:
/usr/sbin/sestatus | grep SELinux
Te va mostrar lo siguiente:
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux
Editamos a la configuración del SELinux en /etc/selinux/config
.
Cambiamos el parámetro SELINUX=enforcing
por el siguiente parámetro SELINUX=disabled
y reiniciamos el servidor CentOS 7. Tal vez es algo muy básico, pero es por esta razón no puede continuar con el capitulo 8.
Espero les ayude por si tienen el mismo problema.
saludos.
Respuestas
Muchas gracias por publicar aquí la respuesta a tus problemas y por explicarlo con tanto detalle. Eso sí, me gustaría decirte que la solución es un poco excesiva, ya que estás deshabilitando toda la protección extra de seguridad de SELinux, lo cual no es muy recomendado.
Según he visto en este post, este problema podrías haberlo resuelto manteniendo activo SELinux, pero permitiendo las conexiones a las bases de datos. Para ello, deberías ejecutar el siguiente comando en la consola:
$ setsebool -P httpd_can_network_connect_db 1
Y en este otro artículo tienes más información sobre las opciones configurables de SELinux.
![](https://pbs.twimg.com/profile_images/937401117608161280/wh03niqP_normal.jpg)
@javiereguiluz
Gracias por la ayuda @javiereguiluz. Revisaré la documentación para aprender más. >)
![](https://pbs.twimg.com/profile_images/475702379212337154/8AXf8NhS_normal.jpeg)
@NilStark