Como resolver el error de Too many connections en MySQL

11/12/2009
By

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.

Popularity: 2% [?]


Otros articulos de interes:

  1. MySQL ERROR 1436 (HY000) – Thread stack overrun
  2. MySQL: Error La tabla esta llena – resuelto
  3. Códigos de error de SSH y SCP
  4. ERROR 2002: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
  5. MySQL: Como buscar y reemplazar texto en todas las tablas de una base de datos

Tags: conexion, conexiones, max connections, pconnect

6 Responses to Como resolver el error de Too many connections en MySQL

  1. Nicolas on 13/05/2010 at 11:12

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

  2. Nicolas on 13/05/2010 at 10:12

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

    • fher98 on 13/05/2010 at 11:03

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

  3. Nicolas on 13/05/2010 at 09:02

    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?

    • fher98 on 13/05/2010 at 10:10

      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. Mario on 12/02/2010 at 14:54

    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.

Leave a Reply

Your email address will not be published. Required fields are marked *

*