Corriger l’erreur « Too many connections » sur MySQL

L’erreur MySQL/MariaDB « Too many connections » a lieu lorsque plus de requêtes sont envoyées à une base de données MySQL qu’elle ne peut en traiter. Cette erreur peut être corrigée en définissant un nouveau nombre maximal de connexions dans le fichier de configuration ou au niveau global.

TABLE_OF_CONTENTS

Pourquoi l’erreur « Too many connections » sur MySQL/ MariaDB se produit-elle?

Une base de données ne peut supporter qu’un nombre limité de requêtes à la fois. Si le maximum est dépassé, MySQL affiche le message d’erreur ci-dessus. C’est le cas, par exemple, lorsqu’un script PHP tente d’établir un nombre trop élevé de connexions simultanées à la base de données relationnelle. Si vous avez recours à une application Web qui utilise une base de données MySQL, il est possible que l’erreur MySQL/MariaDB « Too many connections » fasse irruption lorsque la demande est très élevée.

Stockage en ligne HiDrive
Vos données accessibles partout et à tout moment
  • Modifiez, partagez et stockez vos fichiers
  • Data centers européens certifiés ISO
  • Sécurité élevée des données, conforme au RGPD

Définir un nouveau nombre maximal de connexions

La variable système max_connections détermine le nombre de connexions que MySQL/MariaDB acceptera. La valeur par défaut est 151 connexions, ce qui permet 150 connexions normales plus une depuis le compte SUPER. SUPER constitue un privilège qui accorde les droits d’administrateur à l’utilisateur.

La première décision à prendre porte sur la nouvelle valeur maximale que vous souhaitez définir pour max_connections. Il y a plusieurs considérations à prendre en compte lorsqu’on augmente le nombre de connexions MySQL/MariaDB. Le nombre maximal qui peut être supporté par le système dépendra de :

  • La quantité de RAM disponible
  • De quelle quantité de RAM a besoin chaque connexion (les requêtes simples requièrent moins de RAM que les connexions plus complexes).
  • Le délai de réponse acceptable

D’après la documentation MySQL, la plupart des systèmes Linux sont censés pouvoir supporter entre 500 et 1 000 connexions sans difficulté.

Modifier max_connections

La variable max_connections peut être modifiée à deux niveaux :

Mettez à jour le fichier my.cnf, de sorte que la nouvelle valeur soit utilisée si le serveur MySQL/MariaDB est relancé.

Utilisez la commande SET GLOBAL pour mettre à jour la valeur sur le serveur MySQL/MariaDB exécuté. Dans ce cas, il n’y a pas besoin de redémarrer MySQL/MariaDB, vous n’aurez dès lors pas à interrompre l’activité de votre base de données un seul instant.

Afficher le nombre de connexions dans MySQL

Pour consulter la valeur actuelle de max_connections, connectez-vous au client de ligne de commande MySQL/MariaDB à l’aide de la commande suivante :

mysql -u root -p

À présent, utilisez la commande :

SHOW variables;

Cette dernière va sortir une liste de toutes les variables définies pour MySQL/MariaDB. Faites défiler la liste vers le haut jusqu’à ce que vous trouviez la valeur de max_connections.

Mettre à jour le fichier my.cnf

Ouvrez le fichier /etc/my.cnf en vue de le modifier à l’aide de la commande :

sudo nano /etc/my.cnf

Juste en-dessous de la première ligne, vous verrez l’entrée suivante :

[mysqld]

Ajoutez une ligne à l’entrée :

max_connections=[desired new maximum number]

À titre d’exemple, pour définir max_connections à 200, les deux premières lignes de votre fichier de configuration devraient ressembler à ceci :

[mysqld]
max_connections=200

Enregistrez le fichier et fermez-le.

Définir le nombre de connexions au niveau global

Vous pouvez également définir le nombre maximal de connexions pour votre base de données au niveau global. Pour commencer, connectez-vous au client de ligne de commande MySQL/MariaDB à l’aide de la commande :

mysql -u root -p

Définissez la nouvelle valeur de max_connections avec le nombre de votre choix à l’aide de la commande :

SET GLOBAL max_connections=[desired new maximum number];

Par exemple, pour définir max_connections à la valeur 200, la commande est :

SET GLOBAL max_connections=200;

Enfin, quittez MySQL/MariaDB à l’aide de la commande :

quit;
Hébergement WordPress
WordPress, plus facile et rapide grâce à l'IA
  • Création et personnalisation de votre site assistées par IA
  • 3x plus rapide : SSD, mise en cache et plus
  • Analyses de sécurité quotidiennes, protection DDoS et disponibilité de 99,98 %
Cet article vous a-t-il été utile ?
Page top