Saltar al contenido

Cómo solucionar: mysql_connect(): Demasiadas conexiones

Hacemos una revisión completa cada noticias de nuestra página web con el objetivo de enseñarte en todo momento información certera y actualizada.

Solución:

Esta es una respuesta técnica

Obtendrá este error de “demasiadas conexiones” al conectarse a MySQL cuando el servidor MySQL haya alcanzado su límite artificial configurable de software de conexiones máximas de clientes simultáneas.

Entonces, la forma correcta de solucionar esto es:

  1. Conéctese directamente al servidor MySQL y realice la consulta: SET GLOBAL max_connections = 1024; para cambiar el límite de conexión en tiempo de ejecución (sin tiempo de inactividad).
  2. Haga que su cambio sea permanente y edite /etc/my.cnf (o similar) y agregue la línea max_connections = 1024 línea dentro de la [mysqld] sección; luego reinicie si no pudo hacer el cambio en vivo.

El límite elegido de 1024 era puramente subjetivo; usa el límite que quieras. También puede inspeccionar su límite actual a través de una consulta SHOW VARIABLES LIKE "max_connections";. Tenga en cuenta que estos límites están ahí para un buen uso, a fin de evitar una sobrecarga innecesaria de su base de datos de back-end. Así que siempre elija límites sabios.

Sin embargo, para esos pasos, debe tener acceso directo a su servidor de base de datos MySQL.

Como dijiste, estás usando GoDaddy (no los conozco mucho), te queda la opción de contactar a tu proveedor de servicios (es decir, GoDaddy). Sin embargo, ellos será ver esto en sus registros de todos modos, también.

Posibles causas raíz

Por supuesto, esto significa que demasiados clientes intentan conectarse al servidor MySQL al mismo tiempo, según el límite de software artificial especificado por configuración.

Lo más probable es que hayas sido objeto de un DDoS ataque.

Gente en este foro quejarse exactamente de lo mismo con exactamente el mismo proveedor.

La respuesta es esta:

VB me dijo que era un ataque de DOS – aquí está su mensaje:

Esto no es una ‘explotación’. Este es un ataque DoS (Denegación de Servicio). Desafortunadamente, no hay nada que podamos hacer al respecto. Los ataques DoS solo se pueden combatir a nivel de servidor o enrutador, y esto es responsabilidad de su host. En lugar de hacer esto, han decidido tomar el camino más fácil y suspender su cuenta.

Si no puede lograr que tomen esto en serio, entonces debe buscar otro host. Lo siento por las malas noticias.

Una posible solución puede ser esta: si su conexión falla con mysql_connect(): Too many connectionsno renuncias, sino que en cambio sleep() durante medio segundo e intente conectarse nuevamente, y salga solo cuando 10 los intentos fallan.

No es una solución, es una solución.

Esto, por supuesto, retrasará la carga de su página, pero es mejor que un feo too many connections mensaje.

También puede venir con algún tipo de método que diferencie a los bots de los navegadores.

Como, poner un salado SHA1 cookie, redirija a la misma página y luego verifique esa cookie y conéctese a MySQL solo si el agente de usuario había pasado la prueba.

¿Cierras tu conexión cuando terminas con ellos? ¿Está utilizando algún tipo de agrupación de conexiones? Parece que estás abriendo conexiones y no cerrándolas.

EDITAR: Ya respondido por Quassnoi. En el caso de que se trate de un DDoS, y esté utilizando un alojamiento compartido, es posible que solo tenga que ponerse en contacto con su host y resolverlo con ellos. Desafortunadamente, esto es un riesgo cuando no tienes el control de todo tu sistema.

valoraciones y comentarios

Recuerda que te permitimos agregar una reseña si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *