Comment se débarrasser de l'erreur «nombre maximal de connexions utilisateur»?


16

J'utilise MySQLi pour ma webapp mais chaque fois que je veux visiter une page en particulier, j'obtiens mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections.

J'ai déjà essayé de fermer toutes les connexions mais cela n'améliore pas la situation.

Existe-t-il un moyen de savoir exactement quelles connexions sont ouvertes à un moment donné ou toute autre donnée utile qui peut m'aider à résoudre ce problème?

BTW, j'utilise PHP 5.2.17 et MySQL 5.1.

Réponses:


24

L'option max_user_connections est une limite imposée, non pas sur le nombre total de connexions simultanées dans l'instance de serveur, mais sur le compte d'utilisateur individuel.

Disons que l'utilisateur est appelé db_user@localhost. Vous pouvez savoir quelle est la limite de connexion de cet utilisateur en exécutant cette requête:

SELECT max_user_connections FROM mysql.user
WHERE user='db_user' AND host='localhost';

S'il s'agit d'une valeur différente de zéro, modifiez-la à nouveau avec:

GRANT USAGE ON *.* TO db_user@localhost WITH MAX_USER_CONNECTIONS 0;

ou

UPDATE mysql.user SET max_user_connections = 0
WHERE user='db_user' AND host='localhost';
FLUSH PRIVILEGES;

Cela entraînera mysqldpour permettre à l'utilisateur db_user@localhostd'utiliser le paramètre global max_user_connections comme sa limite.

Une fois arrivé à ce point, vérifiez maintenant le paramètre global à l'aide de

SHOW VARIABLES LIKE 'max_user_connections';

S'il s'agit d'une valeur différente de zéro, vous devez faire deux choses

CHOSE # 1 : Recherchez le paramètre dans/etc/my.cnf

[mysqld]
max_user_connections = <some number>

commenter cette ligne

CHOSE # 2 : définir la valeur dynamiquement

SET GLOBAL max_user_connections = 0;

Le redémarrage de MySQL n'est pas requis.

CAVEAT

J'ai discuté de ce paramètre dans le passé

Essaie !!!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.