Como resolver el error de Too many connections en MySQL

6 Comments

Introduccion

Con trabajo constante las visitas a este blog han ido creciendo a paso firme, cada dia mas profesionales se benefician del expertise en tecnologias de la informacion aca compartida. Esta creciente popularidad del blog ha ocasionado que el servicio sufra de lentitud  en horas pico.

Inclusive un error de mysql:

Too Many Connections

Que es Too Many Connections

Este error del servidor de base de datos se da cuando existen demasiadas conexiones simultaneas o debido a que las conexiones anteriores no son liberadas prontamente.

El rendimiento de MySQL se puede ver afectado por las conexiones de PHP. Una conexion permante via mysql_pconnect() puede estar definida en 8 horas. Y solo creara una nueva conexion si no encuentra una conexion permanete que pueda reutilizar.

Asi mismo existe el comando mysql_connect() el cual creara una conexion temporal a la base de datos, y pueden cerrarse con mysql_close().

Como solucionarlo

Para solventar el problema de muchas conexiones simultaneas ajustamos la varible max_connections de MySQl. En mi instalacion con Linux Debian este parametro estaba establecido a 100, por lo cual lo cambie a 150, seguidamente reiniciamos el motor de DB y eso es todo.

A decir verdad luego del cambio realizado hace unas dos semanas he notado mejor rendimiento en las consultas, sin embargo el numero de conexiones simultaneas no ha pasado de 120.

6 Replies to “Como resolver el error de Too many connections en MySQL”

  1. ya creo haberte entendido, cada vez que haces mysql_connect() es lo que definis como una nueva conexión, estoy en lo cierto?

  2. o sea te referís a accesos a la base de datos (ya sea para actualizar, consultar o insertar) al mismo tiempo?

    1. Cada nueva conexion directa a la base de datos. Podes hacer miles de inserts, updates, selects en la misma conexion durante dias.

  3. Hola quería preguntarte si con maximo de conexiones te referís al numero de clientes accediendo a tu base de datos al mismo tiempo?

    1. No precisamente. Una aplicacion puede tener 1 conexion a la base de datos pero 100 clientes consultando mediante de ella. Con conexiones me refiero a, conexiones individuales, ya sea de clientes o aplicaciones.

  4. Vos, y no sera que no se está manejando un buen pool de conexiones ? . 150 conexiones a mi punto de vista es mucho, ya que en cada peticion asincrona del http, la consulta debe tomar la conexion del pool y regresarla inmediatamente al finalizar, asi, aunque tengas 100 cuates viendo tu pagina al mismo tiempo, no todos están dando click al mismo tiempo a un enlace.

    Aunque seguramente esto ya lo maneja el cms que usas (que desconozco cual es) …

    Talves podes activar algun log a nivel de DEBUG en la configuración del CMS que te de un panorma de como se están utilizando las conexiones a la base.

    Saludos.

Deja tus preguntas o comentarios