Ubuntu har flyttat från Upstart till Systemd i version 15.04 och respekterar inte längre gränserna i /etc/security/limits.conf för systemtjänster. Dessa gränser gäller nu endast för användarsessioner.
Gränserna för MySQL-tjänsten definieras i Systemd-konfigurationsfilen, som du bör kopiera från dess standardplats till /etc/systemd och sedan redigera kopian.
sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice
Lägg till följande rader längst ner i filen:
LimitNOFILE=infinity
LimitMEMLOCK=infinity
Du kan också ställa in en numerisk gräns, t.ex. LimitNOFILE=4510
.
Ladda nu om Systemd-konfigurationen med:
sudo systemctl daemon-reload
Starta om MySQL och det bör nu följa max_connections-direktivet.
Jag hade också problem med att stoppa MySQL rent efter att ha uppgraderat till 15.04. Om detta påverkar dig (du kommer att veta eftersom det tar 300 sekunder att timeout när du gör service mysql stop
eller service mysql restart
) och sedan lägga till följande rad i samma /etc/systemd/system/mysql.service-fil fixade det åt mig:
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
Det senare problemet verkar ha åtgärdats senast 16.04 och den här raden behövs inte längre, så innan du gör en distributionsuppgradering vill du stoppa MySQL och ta bort ExecStop
rad från inställningsfilen.