Ubuntu is in versie 15.04 overgestapt van Upstart naar Systemd en respecteert niet langer de limieten in /etc/security/limits.conf voor systeemservices. Deze limieten zijn nu alleen van toepassing op gebruikerssessies.
De limieten voor de MySQL-service zijn gedefinieerd in het Systemd-configuratiebestand, dat u vanaf de standaardlocatie naar /etc/systemd moet kopiëren en vervolgens de kopie moet bewerken.
sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice
Voeg de volgende regels toe aan de onderkant van het bestand:
LimitNOFILE=infinity
LimitMEMLOCK=infinity
U kunt ook een numerieke limiet instellen, bijv. LimitNOFILE=4510
.
Laad nu de Systemd-configuratie opnieuw met:
sudo systemctl daemon-reload
Start MySQL opnieuw en het zou nu moeten voldoen aan de max_connections-richtlijn.
Ik had ook problemen met het netjes stoppen van MySQL na het upgraden naar 15.04. Als dit van invloed is op u (u weet het want het duurt 300 seconden voordat er een time-out optreedt wanneer u service mysql stop
doet of service mysql restart
) en vervolgens de volgende regel toe te voegen aan hetzelfde bestand /etc/systemd/system/mysql.service loste het voor mij op:
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
Dit laatste probleem lijkt te zijn verholpen tegen 16.04 en deze regel is niet langer nodig, dus voordat u een distributie-upgrade uitvoert, moet u MySQL stoppen en de ExecStop
verwijderen regel uit het configuratiebestand.