Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile aumentare max_open_files per Mysql max-connections in Ubuntu 15

Ubuntu è passato da Upstart a Systemd nella versione 15.04 e non rispetta più i limiti in /etc/security/limits.conf per i servizi di sistema. Questi limiti ora si applicano solo alle sessioni utente.

I limiti per il servizio MySQL sono definiti nel file di configurazione Systemd, che dovresti copiare dalla sua posizione predefinita in /etc/systemd e quindi modificare la copia.

sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice

Aggiungi le seguenti righe in fondo al file:

LimitNOFILE=infinity
LimitMEMLOCK=infinity

Puoi anche impostare un limite numerico, ad esempio LimitNOFILE=4510 .

Ora ricarica la configurazione di Systemd con:

sudo systemctl daemon-reload

Riavvia MySQL e ora dovrebbe obbedire alla direttiva max_connections.

Ho anche avuto problemi a fermare MySQL in modo pulito dopo l'aggiornamento a 15.04. Se questo ti riguarda (lo saprai perché ci vorranno 300 secondi prima che scada quando esegui il service mysql stop o service mysql restart ) quindi l'aggiunta della seguente riga allo stesso file /etc/systemd/system/mysql.service l'ha risolto per me:

ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown

Quest'ultimo problema sembra essere stato risolto dalla 16.04 e questa riga non è più necessaria, quindi prima di eseguire un aggiornamento della distribuzione ti consigliamo di interrompere MySQL e rimuovere ExecStop riga dal file di configurazione.