web-dev-qa-db-fra.com

erreur MySQL 1040: Trop de connexions

Comment résoudre ces problèmes, "Erreur SQL 1040: Trop de connexions" Même moi, j'essaie de mettre

max_user_connection=500

toujours "Trop de connexion"

24
kelvzy

MySQL: ERREUR 1040: trop de connexions

Cela indique en gros que MySQL gère simultanément le nombre maximal de connexions et que, par défaut, il gère simultanément les connexions 100

Les raisons suivantes font que MySQL manque de connexions.

  1. Requêtes lentes

  2. Techniques de stockage de données

  3. Mauvaise configuration de MySQL

J'ai pu surmonter ces problèmes en procédant comme suit.

Ouvrez MySQL command line tool et tapez,

show variables like "max_connections";

Cela vous retournera quelque chose comme ça.

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   |
+-----------------+-------+

Vous pouvez modifier le paramètre, par exemple 200 en lançant la commande suivante sans avoir à redémarrer le serveur MySQL.

set global max_connections = 200;

Maintenant, lorsque vous redémarrez MySQL la prochaine fois, il utilisera ce paramètre au lieu du paramètre par défaut.

N'oubliez pas que l'augmentation du nombre de connexions augmente la quantité de RAM requise pour l'exécution de MySQL.

22
Dulith De Costa

Cela vaut la peine de savoir que si vous manquez d'espace disque utilisable sur votre partition ou votre lecteur serveur, cela provoquera également le retour de MySQL avec cette erreur. Si vous êtes sûr que c'est pas le nombre réel d'utilisateurs connectés, l'étape suivante consiste à vérifier que vous avez de l'espace disponible sur votre lecteur/partition du serveur MySQL.

Edit Janvier 2019:
Ceci est vrai pour MySQL 5.7 et 5.8. Je ne sais pas pour les versions supérieures à cela.

22
Martin

Si vous êtes à court de connexions de ce type, il y a de fortes chances que vous ne fermiez pas les connexions que vous avez ouvertes.

Passez en revue le code qui ouvre les connexions et assurez-vous que les connexions sont fermées dès que possible. Généralement, vous souhaitez utiliser le mot clé using autour de tout ce qui implémente IDisposable (y compris les connexions à une base de données) pour vous assurer que ces objets sont supprimés dès qu'ils quittent la portée où ils sont nécessaires.

Vous pouvez vérifier le nombre actuel de connexions actives avec cette requête:

show processlist

Référence: MySQL show status - connexions actives ou totales?

18
Eric J.

Vous devez modifier max_connections pour augmenter le nombre total de connexions autorisées.

Et définissez max_user_connections à la valeur par défaut 0 => no limit sauf si vous devez limiter cette connexion par utilisateur.

MySQL Trop de connexions

9
Sir Rufo

Dans votre programme, vous auriez ouvert les connexions et laissé ouvert sans la fermer.

J'ai fait face au même problème et finalement identifié.

J'ai ajouté ce code, après avoir essayé attraper.

finally{
    try {
        rs.close();
        p.close();
        conn.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
8
Mohamed Noordeen

Essaye ça : 

ouvrez le terminal et tapez cette commande: Sudo gedit /etc/mysql/my.cnf

Collez la ligne dans le fichier my.cnf: set-variable=max_connections=500

1
Praveen Kumar K R

Cette erreur se produit car la limite de connexion a atteint la limite maximale définie dans le fichier de configuration my.cnf.

Afin de corriger cette erreur, connectez-vous à MySQL en tant qu'utilisateur root (Remarque: vous pouvez vous connecter en tant que root, car mysql pré-allouera une connexion supplémentaire pour root user) et augmentez la variable max_connections à l'aide de la commande suivante:

SET GLOBAL max_connections = 500;

Ce changement sera là jusqu'au prochain redémarrage du serveur. Afin de rendre cette modification permanente, vous devez modifier votre fichier de configuration. Vous pouvez le faire en

vi /etc/my.cnf

[mysqld]
max_connections = 500

Cet article a détaillé étape par étape la solution de rechange pour corriger cette erreur . Jetez-y un coup d'œil, j'espère que cela pourra vous aider. Merci.

1
rathishDBA

Vérifiez si votre application en cours d’exécution accède toujours à votre mysql et a utilisé toutes les connexions à la base de données. 

Donc, si vous essayez d’accéder à mysql à partir de workbench, vous obtiendrez l’erreur "trop ​​de connexions".

arrêtez votre application Web en cours d’exécution qui contient toutes ces connexions à la base de données pour que votre problème soit résolu.

0
subash