Comment réparer: mysql_connect (): Trop de connexions
J'obtiens l'erreur suivante:
mysql_connect(): Too many connections
Il a complètement éteint mon site, qui a été en cours d'exécution de façon transparente pour plusieurs années.
Note: j'ai d'hébergement partagé avec GoDaddy.
Comment puis-je résoudre ce problème?
AUSSI: est-il un moyen pour fermer toutes les connexions et redémarrer lorsque sur un hébergement mutualisé plan?
source d'informationauteur johnnietheblack
Vous devez vous connecter pour publier un commentaire.
Plus probablement, vous avez fait l'objet d'une
DDoS
attaque.Personnes ce forum se plaindre sur exactement la même chose avec exactement le même fournisseur.
La réponse est celle-ci:
Une solution possible peut être ceci: si votre connexion échoue avec
mysql_connect(): Too many connections
vous ne quittez pas, mais au lieusleep()
pendant une demi-seconde et essayez à nouveau de vous connecter et de sortie que lorsque10
tentatives échouent.Ce n'est pas une solution, c'est une solution de contournement.
Bien sûr, cela retardera votre chargement de la page, mais c'est mieux qu'un vilain
too many connections
message.Vous aussi vous pouvez venir avec un certain type de méthode qui raconte les robots et les navigateurs en dehors.
Le souhaitez, définir un salée
SHA1
cookie, la réorienter vers la même page et de vérifier ensuite que le cookie et se connecter àMySQL
seulement si l'agent utilisateur a passé le test.C'est une Réponse Technique
Vous obtiendrez ce "trop grand nombre de connexions" erreur lors de la connexion à mysql, quand le serveur mysql a atteint son logiciel configurable limite artificielle maximum de connexions simultanées de clients.
Donc, le bon moyen de résoudre ce problème est de:
SET GLOBAL max_connections = 1024;
pour modifier la limite de connexion au moment de l'exécution (pas de temps d'arrêt).max_connections = 1024;
ligne à l'intérieur de la[mysqld]
section; puis redémarrez si tu ne pouvais pas faire le live changement.La limite choisie de 1024 était du pur subjectif; utiliser quelle que soit la limite que vous voulez. Vous pouvez aussi vérifier votre actuelle limite l'intermédiaire d'une requête
SHOW VARIABLES LIKE "max_connections";
. Gardez à l'esprit que ces limites sont là pour une bonne utilisation, afin d'éviter la surcharge de votre base de données principale. Il faut donc toujours choisir de sages limites.Toutefois, pour ces étapes, vous devez avoir un accès direct à votre base de données mySQL.
Comme vous l'avez dit, vous êtes à l'aide de Godaddy (je ne les connais pas tant que ça), vous êtes de gauche avec la possibilité de contacter votre fournisseur de services (c'est à dire Godaddy). Cependant, ils sera voir dans leurs journaux de toute façon, aussi.
Causes Possibles
Bien sûr, cela signifie, que trop de clients essayent de se connecter au serveur mySQL en même temps que de la configuration spécifiée artificielle logiciel limite.
Ne vous fermez votre connexion lorsque vous avez terminé avec eux? Êtes-vous en utilisant un certain type de regroupement de connexion? On dirait que vous êtes de l'ouverture des connexions et de ne pas les fermer.
EDIT: Déjà répondu par Quassnoi. Dans le cas où il est un DDoS, et vous êtes à l'aide de l'hébergement mutualisé, vous pouvez être laissé avec seulement communiquant avec votre hôte et de travailler avec eux. Malheureusement, c'est un risque lorsque vous n'avez pas le contrôle de votre système.
Envisager d'utiliser mysql_pconnect(). Votre hôte peut avoir l'ajout d'une sorte d'étranglement pour les connexions. Comme un maximum de 100 par 20 minutes ou quelque chose de bizarre.
Une autre chose qui peut provoquer cette erreur est si la Base de données a de l'espace. J'ai récemment eu ce cas, et la question n'était pas de connexions, il a de l'espace Disque. Espérons que cela aide quelqu'un d'autre!