Ubuntu pasó de Upstart a Systemd en la versión 15.04 y ya no respeta los límites en /etc/security/limits.conf para los servicios del sistema. Estos límites ahora se aplican solo a las sesiones de usuario.
Los límites para el servicio MySQL se definen en el archivo de configuración de Systemd, que debe copiar desde su ubicación predeterminada en /etc/systemd y luego editar la copia.
sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice
Agregue las siguientes líneas al final del archivo:
LimitNOFILE=infinity
LimitMEMLOCK=infinity
También puede establecer un límite numérico, por ejemplo, LimitNOFILE=4510
.
Ahora recarga la configuración de Systemd con:
sudo systemctl daemon-reload
Reinicie MySQL y ahora debería obedecer la directiva max_connections.
También tuve problemas para detener MySQL limpiamente después de actualizar a 15.04. Si esto te afecta (lo sabrás porque tardará 300 segundos en agotarse cuando hagas service mysql stop
o service mysql restart
) y luego agregar la siguiente línea al mismo archivo /etc/systemd/system/mysql.service me lo arregló:
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
Este último problema parece haberse solucionado en 16.04 y esta línea ya no es necesaria, por lo que antes de realizar una actualización de distribución, querrá detener MySQL y eliminar ExecStop
línea del archivo de configuración.