Descrittori di file
Per l'esecuzione, il server MySQL ha bisogno di descrittori di file, e i valori predefiniti non sono sufficienti.
Le utilizza per aprire nuove connessioni, archiviare tabelle nella cache, creare tabelle temporanee per risolvere query complesse e accedere a quelle persistenti. Se mysqld non è in grado di aprire nuovi file quando necessario, può smettere di funzionare correttamente. Un sintomo comune di questo problema è l'errore 24, "troppi file aperti". Il numero di descrittori di file che mysqld può aprire simultaneamente è definito dal open_files_limit
opzione impostata nel file di configurazione (/etc/my.cnf
). Ma open_files_limit
dipende anche dai limiti del sistema operativo. Questa dipendenza rende l'impostazione della variabile più complicata.
MySQL non può impostare ITS open_files_limit
opzione superiore a quanto specificato in ulimit 'open files'
. Pertanto, è necessario impostare esplicitamente questi limiti a livello del sistema operativo per consentire a MySQL di aprire i file in base alle necessità. Ci sono due modi per controllare il limite dei file in Linux:
-
Il
ulimit
command fornisce rapidamente una descrizione dettagliata dei parametri consentiti o bloccati. Le modifiche apportate eseguendo questo comando non sono permanenti e si cancellano dopo un riavvio del sistema. -
Modifiche al
/etc/security/limit.conf
i file sono permanenti e non sono interessati dal riavvio del sistema.
Assicurarsi di modificare sia i limiti hard che soft per l'utente mysql. I seguenti estratti provengono dalla configurazione:
mysql hard nofile 65535 mysql soft nofile 65353
In parallelo, aggiornare la stessa configurazione in my.cnf
per utilizzare completamente i limiti dei file aperti.