Too many connections limite de conexiones excedido
Cuando una conexion a mysql nos genera el mensaje "too many connections" quiere decir que el limite de conexiones se ha excedido y por tal motivo no permite ni una mas.
Por defecto mysql trae un limite de 250 conexiones y al parecer nuestros programas que consumen la base de datos estan sobre pasando ese limite.
En versiones anteriores de sistemas operativos era tan simple como agregar una variable a un archivo, pero con las nuevas versiones de CentOS ya no es tan sencillo.
Pasos para corregir este tema:
1. Cambiar el limite maximo de archivos del SO para mysql.
En el archivo /etc/security/limits.conf
AGREGAR:
mysql hard nofile 65535
mysql soft nofile 65535
Luego en:
/usr/lib/systemd/system/mysqld.service, en la sección de servicio [service]
LimitNOFILE=65535
2. Ahora si lo que estabamos acostumbrados:
En el archivo /etc/my.conf
AGREGAR:
[mysqld]
max_connections=2500
3. REINICIAR
systemctl daemon-reload
systemctl restart mysqld
4. VERIFICAR
mysql> show variables like '%connection%';
+--------------------------+-----------------+
| Variable_name | Value |
+--------------------------+-----------------+
| character_set_connection | utf8 |
| collation_connection | utf8_general_ci |
| max_connections | 2500 |
| max_user_connections | 0 |
+--------------------------+-----------------+
4 rows in set (0.01 sec)
Por defecto mysql trae un limite de 250 conexiones y al parecer nuestros programas que consumen la base de datos estan sobre pasando ese limite.
En versiones anteriores de sistemas operativos era tan simple como agregar una variable a un archivo, pero con las nuevas versiones de CentOS ya no es tan sencillo.
Pasos para corregir este tema:
1. Cambiar el limite maximo de archivos del SO para mysql.
En el archivo /etc/security/limits.conf
AGREGAR:
mysql hard nofile 65535
mysql soft nofile 65535
Luego en:
/usr/lib/systemd/system/mysqld.service, en la sección de servicio [service]
LimitNOFILE=65535
2. Ahora si lo que estabamos acostumbrados:
En el archivo /etc/my.conf
AGREGAR:
[mysqld]
max_connections=2500
3. REINICIAR
systemctl daemon-reload
systemctl restart mysqld
4. VERIFICAR
mysql> show variables like '%connection%';
+--------------------------+-----------------+
| Variable_name | Value |
+--------------------------+-----------------+
| character_set_connection | utf8 |
| collation_connection | utf8_general_ci |
| max_connections | 2500 |
| max_user_connections | 0 |
+--------------------------+-----------------+
4 rows in set (0.01 sec)
Comentarios
Publicar un comentario