1

J'ai créé un chat en temps réel avec une interrogation longue. Cela fonctionne comme suit:erreur max_user_connection lors d'un chat en temps réel

D'abord, l'utilisateur envoie une requête au serveur. Le serveur reçoit la demande et attend un nouveau message.

Si un nouveau message arrive, il enverra un message au navigateur de l'utilisateur (si la demande est fermée, le navigateur la renverra). Si le serveur a attendu plus de 3 minutes, la requête sera annulée et une nouvelle sera envoyée.

Sur le serveur, j'ai utilisé PHP. En PHP, je vérifie juste le nombre de messages toutes les 600 millisecondes. S'il est supérieur au nombre précédent, le serveur recevra de nouveaux messages et les enverra au navigateur sous forme de réponses.

Le problème est que j'obtiens l'erreur max_user_connection, même si je ferme les connexions mysqli après chaque vérification SQL dans la base de données. Si je ne ferme pas mysqli, une erreur se produit plus souvent si je ne ferme pas mysqli.

Comment puis-je résoudre ce problème? (Pour l'instant, mon hôte est Hostgator et le plan est partagé)

Répondre

0

Connectez-vous au serveur mysql et exécutez cette commande pour connaître le nombre maximal de connexions que vous avez définies.

mysql>show variables like "max_connections"; 
+-----------------+-------+ 
| Variable_name | Value | 
+-----------------+-------+ 
| max_connections | 100 | 
+-----------------+-------+ 

Si son inférieur au nombre de connexions que vous demandez à ce moment, puis mettre à jour le nombre de connexions.

mysql>set global max_connections = 200; 

Cela devrait résoudre votre problème. Souvenez-vous que max_connections est dynamique, vous n'avez pas besoin d'arrêter, ou de redémarrer le serveur mysql. Vous pouvez directement mettre à jour le nombre de connexions.

+1

Pourquoi la limite de max_connection existe-t-elle? Quel est l'avantage? Pourquoi les hôtes le font-ils? N'est-ce pas dangereux augmenter max_connection llimit? – Alex

+0

Non, ce n'est pas dangereux, mysql a une limite par défaut, vous pouvez toujours augmenter dynamiquement Si vous le souhaitez. Cette opération ne verrouille rien. Mais ne l'augmentez pas trop. Ce fil pourrait aider, http://dba.stackexchange.com/questions/23498/what-should-i-set-max-connections-to-for-mysql – Jordon

+1

merci pour l'information cela a été utile malheureusement, je ne peux pas l'augmenter trop, je veux apprendre que quel est le problème avec ajax interrogation longue? Quand je fais simple sondage ajax il fonctionne parfaitement mais banwidth augmenter vraiment beaucoup quand je fais diminuer la bande passante longtemps très musc mais ce problème se produire. Que dois-je faire? – Alex