Présentation :
Lorsque je suis passé de Mysql 5.5 à 5.6, certains sites affichaient soudainement l'erreur suivante :...... Too many open files
Le problème est lié aux limitations actuelles du système et du système PAM pour ouvrir un maximum de 1024 fichiers. Après avoir fait quelques recherches, j'ai trouvé ce site ci-dessous qui est en allemand dans lequel ce qui suit est expliqué :
https://www.filewalker.de/ulimit-mysql-open_files_limit/
ÉTAPES :
Vérifiez les limites d'ouverture des fichiers ou exécutez le serveur mysql :mysql -p -u root
mysql> SHOW VARIABLES LIKE 'open%';
La sortie très possible :+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
1 row in set (0.00 sec)
Cela signifie que le serveur Mysql peut ouvrir un maximum de 1024, ce qui semble trop peu pour Mysql 5.6.
Augmentation de cette limite
Editez le fichier /etc/security/limits.conf et ajoutez les lignes suivantes :mysql hard nofile 65535
mysql soft nofile 65535
Cela augmentera la limite de fichiers ouverts à 65535 pour l'utilisateur mysql uniquement.
Si vous souhaitez augmenter cette limite pour tous les utilisateurs, remplacez le mot mysql pour *
ex.* hard nofile 65535
* soft nofile 65535
Et selon ce site éditez le fichier /etc/pam.d/common-session et ajoutez cette ligne à la fin :session required pam_limits.so
Remarque : Je ne suis pas sûr que cette étape soit vraiment nécessaire. Certaines personnes ont essayé sans cela et cela a également fonctionné. Pour moi, dans Debian Wheezy, je devais le faire sinon j'obtenais toujours l'erreur.
Pour les systèmes qui exécutent systemd au lieu d'InitV, procédez comme suit :
Modifiez le fichier /usr/lib/systemd/system/mysqld.service
Ajoutez ces 2 lignes à la fin :LimitNOFILE=65535
LimitNPROC=65535
Redémarrez le serveur Mysql et testez-le à nouveauservice mysql restart
mysql -p -u root
mysql>> SHOW VARIABLES LIKE 'open%';
Le résultat plein d'espoir :+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.00 sec)
Cette erreur ne devrait plus apparaître.