Solucionar el error MySQL/MariaDB “Too many connections”
El error de MySQL “Too many connections” se produce cuando se envían más consultas a una base de datos MySQL de las que se pueden procesar. El error puede solucionarse estableciendo un nuevo número de conexiones máximas en el archivo de configuración o de forma global.
¿Cómo se produce el error de MySQL/MariaDB “Too many connections”?
Una base de datos solo puede atender un número limitado de consultas a la vez. Si se supera el máximo, MySQL muestra el mensaje de error anterior. Este es el caso, por ejemplo, cuando un script de PHP intenta establecer demasiadas conexiones simultáneas a la base de datos relacional. Si utilizas una aplicación web que usa una base de datos MySQL, es posible que el error de MySQL “Too many connections” se produzca cuando la demanda es muy alta.
Elige un nuevo número máximo de conexiones
La variable del sistema max_connections determina el número de conexiones que aceptará MySQL/MariaDB. El valor por defecto es de 151 conexiones, lo que permite 150 conexiones normales más una conexión de la cuenta SUPER. SUPER es un privilegio de MySQL que otorga derechos de administrador al usuario.
Lo primero que debes decidir es qué nuevo valor máximo quieres establecer para max_connections. Hay varias consideraciones que hay que tener en cuenta a la hora de aumentar el número de conexiones MySQL/MariaDB. El número máximo que puede soportar el sistema dependerá de:
- La cantidad de memoria RAM disponible
- Cuánta RAM necesita cada conexión (las consultas sencillas requerirán menos RAM que las conexiones más laboriosas)
- El tiempo de respuesta aceptable
Según la documentación de MySQL, la mayoría de los sistemas Linux deberían poder soportar entre 500 y 1000 conexiones sin dificultad.
Cambiar el parámetro max_connections
La variable max_connections puede modificarse en dos sitios:
Actualiza el archivo my.cnf file para que el nuevo valor se utilice si se reinicia el servidor MySQL/MariaDB.
Utiliza el comando SET GLOBAL para actualizar el valor en el servidor MySQL/MariaDB en funcionamiento. En este caso, no es necesario reiniciar MySQL/MariaDB, por lo que no tienes que prever ningún tiempo de inactividad de tu base de datos.
Mostrar el número de conexiones en MySQL
Para comprobar el número actual de max_connections conéctate al cliente de línea de comandos de MySQL/MariaDB con el siguiente comando:
mysql -u root -p
Ahora, utiliza el comando:
SHOW variables;
Esto mostrará una lista de todas las variables configuradas para MySQL/MariaDB. Desplázate por la lista para encontrar el valor de max_connections.
Actualizar el archivo my.cnf
Abre el archivo /etc/my.cnf para editarlo con el comando:
sudo nano /etc/my.cnf
Justo debajo de la primera línea, verás la siguiente entrada:
[mysqld]
Añade una línea a la entrada:
max_connections=[nuevo número máximo deseado]
Por ejemplo, para establecer max_connections en 200, las dos primeras líneas de tu archivo de configuración deben tener el siguiente aspecto:
[mysqld]
max_connections=200
Guarda y sal del archivo.
Establecer el número de conexiones a nivel global
También puedes establecer el número máximo de conexiones para tu base de datos de forma global. Primero entra en el cliente de línea de comandos de MySQL/MariaDB utilizando el comando:
mysql -u root -p
Ajusta el nuevo número máximo de tu elección del nuevo valor de max_connections con el comando:
SET GLOBAL max_connections=[nuevo número máximo deseado];
Por ejemplo, para establecer max_connections en 200, el comando es:
SET GLOBAL max_connections=200;
Finalmente, sal de MySQL/MariaDB con el comando:
quit;
- Creación y personalización de tu página asistida por la IA
- 3 veces más rápido: SSD, caché y más
- Análisis diarios, protección DDoS y disponibilidad del 99,98 %