php, mysql - un Trop grand nombre de connexions à la base de données d'erreur
Bonne journée à tous. J'ai une étrange erreur. J'ai créé un chat qui fonctionne comme ceci:
- les questions/réponses sont insérés dans une db
- toutes les 2 secondes, une requête ajax est envoyée à un script php qui récupère la de nouvelles questions/réponses
Il a bien fonctionné jusqu'à aujourd'hui, quand j'ai eu cette erreur:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too many connections' in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php:129
Stack trace: #0 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(129): PDO->__construct('mysql:host=loca...', '', '', Array)
s#1 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
s#2 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect()
s#3 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('select profile_...', Array)
s#4 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(782): Zend_Db_Adapter_Pdo_Abstract->query('select profile_...', Array)
s#5 /var/www/html/dbdev/include/Profile.php(43): Zend_Db_Adapter_Abstract->fetchPairs('select profile_...')
s#6 /var/www/html/dbdev/public_html/index.php(29): Profile->load()
s#7 {main} Next exception 'Zend_Db_Adapter_Exception' with in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php on line 144
Le problème est que nous n'étions pas nombreuses... (8) et je ne pense pas que la bd ne pouvaient pas soutenir de plus de 8 à 16 connexions simultanément (sur les spécifications, il est écrit que le chat doit prendre en charge 50 à 100 utilisateurs, donc 8 est... petit).
Donc... any1 peut me dire pourquoi est-ce arrivé (hier, nous étions 15 et a bien fonctionné) et comment le résoudre? Je vous remercie pour votre aide. Si vous avez besoin d'exemples de code il suffit de demander.
Quoi mettre du "show variables like 'max_connections';" sur le client mysql
Cette message d'erreur peut également se produire lorsque mysql est impossible d'ouvrir la connexion en raison de la disquette contenant le
Cette message d'erreur peut également se produire lorsque mysql est impossible d'ouvrir la connexion en raison de la disquette contenant le
data-dir
.OriginalL'auteur zozo | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
Il y a un tas de raisons différentes pour le "Trop grand Nombre de Connexions d'erreur".
Vérifier cette page de FAQ sur MySQL.com: http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
Vérifier votre mon.cnf fichier "max_connections". Si il n'en existe pas essayer:
Cependant la valeur par défaut est de 151, de sorte que vous devriez être bien.
Si vous êtes sur un ordinateur hôte partagé, il se pourrait que d'autres utilisateurs prennent trop grand nombre de connexions.
D'autres problèmes à surveiller est l'utilisation de connexions persistantes et en cours d'exécution hors de l'espace disque.
OriginalL'auteur Alexandru Petrescu
L'erreur
SQLSTATE[HY000] [1040] Too many connections
est une erreur SQL, et a à voir avec le serveur sql. Il pourrait y avoir d'autres applications de la connexion au serveur. Le serveur dispose d'un maximum de nombre de connexions.Si vous avez phpmyadmin, vous pouvez utiliser les 'variables' onglet pour vérifier que le réglage est.
Vous pouvez également interroger le statut tableau comme suit:
Ou de certains écarts. vérifier le manuel pour quelles variables il y a
(être conscient, 'connexions' est pas les connexions en cours, vérifiez que le lien 🙂 )
(ajouté une autre façon de voir ces vars btw)
OriginalL'auteur Nanne
Si vous atteignez le mac limite de connexion
aller à
/etc/my.cnf
et en vertu de la[mysqld]
section ajoutermax_connections = 500
et redémarrer MySQL.
OriginalL'auteur Zimbabao
Veuillez vérifier si vous ouvrez une nouvelle connexion à chacune de vos demandes (mysql_connect(...)). Si vous le faites, assurez-vous de fermer la connexion par la suite (à l'aide de mysql_close($link)).
Aussi, vous devriez envisager de changer ce comportement que de garder une connexion stable pour chaque utilisateur peut être un meilleur moyen pour accomplir votre tâche.
Si vous ne l'avez pas déjà fait, jetez un oeil à cette évidente, mais néanmoins les informations utiles de la ressource: http://php.net/manual/function.mysql-connect.php
OriginalL'auteur codenapper
Cela peut se produire en raison d'un trop grand nombre de connexion en même temps ou beaucoup de chat en même temps. Il peut également se produire en raison du trop grand nombre de session.
La meilleure façon de régler ce problème est de redémarrer MySQL.
ou
ou
OriginalL'auteur Laduram Vishnoi