# Gestión de max_connections en MySQL

- Link: https://binariocero.com/mysql/gestion-de-max_connections-en-mysql
- Published: 2026-03-14T09:29:23+01:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

En MySQL, la variable `max_connections` define el número máximo de conexiones simultáneas
que el servidor puede manejar. Ajustar esta variable es fundamental para garantizar
la disponibilidad y el rendimiento de bases de datos con alta concurrencia.

### 1. Configuración en el archivo `my.cnf`

El método recomendado para establecer un valor permanente es editar el archivo de
configuración del servidor MySQL ( `/etc/mysql/my.cnf`, `/etc/my.cnf` o `/etc/mysql/
mysql.conf.d/mysqld.cnf`, dependiendo de la instalación ). La sección relevante 
es `[mysqld]`:

    ```wp-block-preformatted
    [mysqld]max_connections = 500  # Ajusta este valor según la necesidad de tu aplicación
    ```

**Consideraciones:**

 * Cada conexión abierta consume memoria. Incrementar demasiado `max_connections`
   puede causar problemas de memoria en servidores con recursos limitados.
 * Ajusta este valor en función de la carga estimada y los recursos disponibles (
   RAM y CPU).

Después de modificar el archivo, es necesario reiniciar el servicio MySQL para que
los cambios tengan efecto:

    ```wp-block-preformatted
    sudo systemctl restart mysqld   # CentOS/RHELsudo systemctl restart mysql    # Debian/Ubuntu
    ```

### 2. Verificar la configuración actual

Para comprobar el valor actual de `max_connections` sin reiniciar el servidor, se
puede ejecutar la siguiente consulta SQL:

    ```wp-block-preformatted
    SHOW VARIABLES LIKE 'max_connections';
    ```

**Ejemplo de salida:**

| Variable_name | Value | 
| max_connections | 151 |

Esto permite verificar si la variable se ha aplicado correctamente.

### 3. Cambiar `max_connections` dinámicamente

MySQL permite modificar `max_connections` en tiempo de ejecución sin reiniciar el
servidor usando:

    ```wp-block-preformatted
    SET GLOBAL max_connections = 500;
    ```

**Notas importantes:**

 * Este cambio solo se mantiene mientras el servidor está activo. Si MySQL se reinicia,
   volverá al valor definido en `my.cnf`.
 * Necesitas privilegios de administrador (`SUPER` o `SYSTEM_VARIABLES_ADMIN`) para
   ejecutar este comando.
 * Las conexiones ya abiertas no se ven afectadas; solo nuevas conexiones pueden
   exceder el valor anterior.

### 4. Buenas prácticas

 1. **Monitoreo:** Revisa el número de conexiones activas periódicamente con: SHOW 
    STATUS LIKE 'Threads_connected'; Esto ayuda a detectar si `max_connections` se 
    acerca al límite.
 2. **Escalabilidad:** Si la aplicación requiere más conexiones de las que tu servidor
    puede manejar, considera:
 3.  * Pooling de conexiones en la aplicación.
     * Distribución de carga entre varias instancias MySQL.
     * Optimización de queries para reducir el tiempo de conexión activa.
 4. **Memoria y recursos:** Calcula la memoria aproximada consumida por cada conexión
    y asegúrate de que `max_connections` multiplicado por la memoria por conexión no
    exceda la RAM disponible del servidor.

Ajustar correctamente `max_connections` permite un equilibrio entre disponibilidad
y uso eficiente de recursos, especialmente en entornos con alta concurrencia de 
usuarios o aplicaciones críticas.

**Valor máximo:** El máximo teórico es 100,000, pero la memoria del servidor será
el limitante real.
