J'ai défini des connexions maximales à environ 2000 dans le fichier my.cnf.
max_connections=2048
J'ai mis à niveau vers 5.5.20 et maintenant je vois la ligne suivante dans le journal des erreurs.
120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400
Pourquoi mysql a-t-il changé la valeur de connexions maximales à 214?
# mysqladmin variables | grep max_connections
| max_connections | 214
Les fichiers ouverts mous et durs limités par le système d'exploitation sont 1024
# ulimit -Sa | grep "open files"
open files (-n) 1024
# ulimit -Ha | grep "open files"
open files (-n) 1024
Le nombre de connexions max réellement utilisées:
# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 95 |
+----------------------+-------+
ulimit -n 4096
yum
? Si oui, quel paquet?Réponses:
Cela me semble OK. Vous ne pouvez pas avoir max_connections plus grand que cela, car votre open_files_limit est trop faible. Pour chaque connexion, MySQL ouvre plusieurs fichiers. Jetez un oeil ici .
Ainsi, vous devrez augmenter la limite de fichiers ouverts sur votre système d'exploitation, et ensuite, vous pouvez mettre une valeur max_connections plus élevée.
la source
Cela semble être le même problème auquel j'ai répondu dans stackoverflow ici , bien que j'utilisais CentOS 7 et MySQL 5.6.26
Vous devez augmenter votre limite de fichiers ouverts à la fois pour l'utilisateur mysql (dans limits.conf) et pour le service mysql (dans le fichier mysql.service)
ajoutez ces deux lignes à /etc/security/limits.conf
ajoutez cette ligne à /usr/lib/systemd/system/mysqld.service (dans la section [service])
puis redémarrez enfin et vérifiez que ces messages d'erreur ont disparu de votre journal des erreurs mysql.
la source
Cela semble être un bug dans le nouveau mysqld. J'ai eu le même problème. La définition de max_connections sur 700 a fonctionné, mais si je l'ai définie sur 900, elle a été réinitialisée à 214 lors du démarrage. S'il s'agissait d'un changement intentionnel, il l'aurait abaissé à 700 ou quelque chose de similaire, la valeur 214 n'a pas de sens.
Quoi qu'il en soit, l'augmentation de la limite des descripteurs avec ulimit -n résout le problème.
la source