He establecido conexiones máximas a alrededor de 2000 en el archivo my.cnf.
max_connections=2048
He actualizado a 5.5.20 y ahora veo la siguiente línea en el registro de errores.
120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400
¿Por qué mysql cambió el valor máximo de conexiones a 214?
# mysqladmin variables | grep max_connections
| max_connections | 214
Los archivos abiertos blandos y duros restringidos por el sistema operativo son 1024
# ulimit -Sa | grep "open files"
open files (-n) 1024
# ulimit -Ha | grep "open files"
open files (-n) 1024
El número de conexiones máximas realmente utilizadas:
# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 95 |
+----------------------+-------+
ulimit -n 4096
yum
? Si es así, ¿qué paquete?Respuestas:
Me parece bien No puede tener max_ connections más grandes que eso, porque open_files_limit es demasiado bajo. Para cada conexión, MySQL abre varios archivos. Echa un vistazo aquí .
Por lo tanto, tendrá que aumentar el límite de archivos abiertos en su sistema operativo, y luego, puede poner un valor máximo de max_ connections.
fuente
Este parece ser el mismo problema que respondí en stackoverflow aquí , aunque estaba usando CentOS 7 y MySQL 5.6.26
Debe aumentar el límite de sus archivos abiertos tanto para el usuario mysql (en limits.conf) como para el servicio mysql (en el archivo mysql.service)
agregue estas dos líneas a /etc/security/limits.conf
agregue esta línea a /usr/lib/systemd/system/mysqld.service (en la sección [servicio])
luego finalmente reinicie y verifique que esos mensajes de error hayan desaparecido de su registro de errores de mysql.
fuente
Esto parece ser un error en el nuevo mysqld. Yo tuve el mismo problema. Establecer max_ connections en 700 funcionó, pero si lo configuré en 900, se restableció a 214 durante el inicio. Si este fue un cambio intencionado, entonces lo habría reducido a 700 o algo similar, el valor 214 no tiene sentido.
De todos modos, subir el límite del descriptor con ulimit -n soluciona el problema.
fuente