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

'max_user_connections' défini sur 200 - toujours une erreur

En ce qui concerne votre problème de "connexions maximales", il peut s'agir de l'une des trois choses suivantes :

1) Le serveur a déjà trop de connexions ouvertes. Un serveur MySQL ne peut gérer qu'un nombre spécifique de connexions ouvertes avant d'en refuser d'autres, et cette limite est partagée entre tous les utilisateurs du serveur. Il est généralement défini assez haut, bien qu'il soit facilement possible pour quelqu'un de faire un DoS efficace sur un serveur MySQL en établissant de nombreuses connexions (mais voir ci-dessous)

2) Votre compte d'utilisateur a un nombre limité de connexions autorisées par heure - toute autre connexion pendant cette heure sera rejetée. Ceci est défini sur une base par utilisateur.

3) Vos comptes d'utilisateurs ont un nombre limité de connexions ouvertes autorisées - toute autre connexion serait rejetée. Ceci est défini sur une base par utilisateur.

Il est toujours important de lire le message d'erreur qui s'affiche lors de la tentative de connexion, car dans la plupart des cas, cela identifiera la raison exacte de l'échec.

Si votre compte a un nombre maximum de connexions limite (scénario #3), l'erreur serait :Code :

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_user_connections' resource (current value: 1) 

Où 'mysqldba' serait votre nom d'utilisateur, et la 'valeur actuelle' est le nombre maximum de connexions ouvertes autorisées par cet utilisateur.

Si votre compte a un nombre maximum de connexions par heure limite (scénario #2), l'erreur serait :Code :

ERROR 1226 (42000): User 'mysqldba' has exceeded the 'max_connections_per_hour' resource (current value: 1) 

Où, encore une fois, 'mysqldba' serait votre nom d'utilisateur, et la 'valeur actuelle' est le nombre maximum de connexions par heure autorisées pour cet utilisateur.

Si vous recevez le message d'erreur (code 1040) indique que l'ensemble du serveur MySQL est à court d'emplacements de connexion - c'est le scénario DoS que j'ai mentionné ci-dessus.

Que peux-tu y faire? D'après ce que vous avez dit, vous n'avez pas de privilèges de superutilisateur sur ce serveur, donc rien, à part se plaindre auprès de l'administrateur système responsable de ce serveur. Ils pourraient augmenter le nombre maximum de connexions autorisées, ce qui pourrait résoudre le problème à court terme, mais si quelqu'un d'autre utilisant le serveur crée un nombre stupide de connexions à la base de données, les emplacements se rempliraient à nouveau. Ce qu'ils devraient probablement faire, c'est également appliquer une limite de connexion ouverte maximale par utilisateur - cela empêcherait les gros utilisateurs d'encombrer le serveur. Dans une situation de serveur partagé comme la vôtre, cela aurait plus de sens - les "utilisateurs expérimentés" auraient/devraient avoir leur propre serveur, ou pourraient/devraient payer pour augmenter leurs connexions ouvertes maximales.