Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'augmenter max_open_files pour les connexions max MySQL dans Ubuntu 15

Ubuntu est passé d'Upstart à Systemd dans la version 15.04 et ne respecte plus les limites dans /etc/security/limits.conf pour les services système. Ces limites s'appliquent désormais uniquement aux sessions utilisateur.

Les limites du service MySQL sont définies dans le fichier de configuration Systemd, que vous devez copier depuis son emplacement par défaut dans /etc/systemd, puis modifier la copie.

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

Ajoutez les lignes suivantes au bas du fichier :

LimitNOFILE=infinity
LimitMEMLOCK=infinity

Vous pouvez également définir une limite numérique, par exemple LimitNOFILE=4510 .

Rechargez maintenant la configuration de Systemd avec :

sudo systemctl daemon-reload

Redémarrez MySQL et il devrait maintenant obéir à la directive max_connections.

J'ai également eu des problèmes pour arrêter MySQL proprement après la mise à niveau vers 15.04. Si cela vous affecte (vous le saurez car cela prendra 300 secondes pour expirer lorsque vous ferez service mysql stop ou service mysql restart ) puis ajouter la ligne suivante au même fichier /etc/systemd/system/mysql.service l'a corrigé pour moi :

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

Ce dernier problème semble avoir été résolu par 16.04 et cette ligne n'est plus nécessaire, donc avant de faire une mise à jour de la distribution, vous voudrez arrêter MySQL et supprimer le ExecStop ligne du fichier de configuration.