Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › PHP, CMS › Error Can't connect to MySQL server on (13)
Etiquetado: 13, apache, centos, error, error conexión, linux, linux centos, mysql, mysql_connect, php
- Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 8 años, 4 meses por Varios.
-
AutorEntradas
-
10/20/2017 a las 14:56 #1464VariosModerador
Hola, tengo un servidor con Linux CentOS 7, tiene Apache y PHP y lo quiero usar como servidor web para conectarme a otro servidor MySQL. El servidor Linux CentOS 7 está en la red DMZ y el de MySQL en otra red diferente.
He abierto el puerto que uso de MySQL, en lugar del estándar, el 3306, uso el 3340. Haciendo un telnet desde el servidor Linux CentOS 7 con Apache conecto bien al MySQL, incluso ejecutando esto también conecto:
mysql -unombre_usuario -pcontraseña -h192.168.1.100 -P3340
Pero cuando intento conectar con PHP desde la web, usando este código:
PHP123456789101112131415161718192021222324252627282930313233343536373839global $link;$servidor = (string)leerXMLConfiguracion (XML_CONFIGURACION, "servidor");$puerto = (string)leerXMLConfiguracion (XML_CONFIGURACION, "puerto");$usuario = (string)leerXMLConfiguracion (XML_CONFIGURACION, "usuario");//Obtenemos la contraseña, codifcada con base64_encode($contrasena)$contrasena = (string)base64_decode(leerXMLConfiguracion (XML_CONFIGURACION, "contrasena"));$baseDatos = (string)leerXMLConfiguracion (XML_CONFIGURACION, "base_datos");if ($puerto != ""){//$servidor = "$servidor:$puerto";}if (!($link = mysqli_connect($servidor, $usuario, $contrasena, $baseDatos, $puerto))){echo "Error al conectar al servidor de base de datos: " . mysqli_connect_error($link);exit();}else{if (!mysqli_select_db($link, $baseDatos)){echo "Error al conectar al servidor de BD, no existe la base de datos (catálogo).<br/>";exit();}else{if (!mysqli_set_charset($link, "utf8")){printf("Error cargando el conjunto de caracteres utf8: %s\n", mysqli_error($link));exit();}else{return $link;}}}}Me da este error:
Can’t connect to MySQL server on ‘192.168.1.100’ (13)
Curiosamente y dándole muchas vueltas y haciendo muchas pruebas veo que ese mismo código funciona perfectamente en un equipo Windows diferente, por lo que las contraseñas y los puertos abiertos están correctos, también el código, o eso parece.
¿Qué puede estar pasando?
10/20/2017 a las 14:58 #1465alonsojpdSuperadministradorPrueba a ejecutar el siguiente comando en tu servidor Linux CentOS 7:
setsebool -P httpd_can_network_connect 1
10/22/2017 a las 19:22 #1466VariosModeradorGenial, con esa instrucción ahora me funciona perfecto.
Muchas gracias!!
-
AutorEntradas
- Debes estar registrado para responder a este debate.