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"
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.
Requêtes lentes
Techniques de stockage de données
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.
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.
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?
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.
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();
}
}
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
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.
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.