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

Erreur MySQL Trop de connexions

Les fournisseurs d'hébergement mutualisé autorisent généralement un assez petit nombre de connexions simultanées pour le même utilisateur.

Ce que fait votre code est :

  • ouvrir une connexion au serveur MySQL
  • faire ce qu'il faut (générer la page)
  • fermer la connexion à la fin de la page.

La dernière étape, lorsqu'elle est effectuée à la fin de la page, n'est pas obligatoire :(citant mysql_close du manuel) :

Mais notez que vous ne devriez probablement pas utiliser les connexions persistantes de toute façon...

Deux conseils :

  • utiliser mysql_connect au lieu de mysql_pconnect (déjà OK pour vous)
  • Définissez le quatrième paramètre de mysql_connect sur false (déjà OK pour vous, car c'est la valeur par défaut) :(citant le manuel) :


Qu'est-ce qui pourrait causer le problème, alors ?

Peut-être essayez-vous d'accéder à plusieurs pages en parallèle (en utilisant plusieurs onglets dans votre navigateur, par exemple) , qui simulera plusieurs utilisateurs utilisant le site en même temps ?

Si vous avez plusieurs utilisateurs utilisant le site en même temps et le code entre mysql_connect et la fermeture de la connexion prend beaucoup de temps, cela signifiera que plusieurs connexions seront ouvertes en même temps... Et vous atteindrez la limite  :-(

Pourtant, comme vous êtes le seul utilisateur de l'application, étant donné que vous avez jusqu'à 200 connexions simultanées autorisées, il se passe quelque chose d'étrange...


Eh bien, en pensant à "trop de connexions " et "max_connections "...

Si je me souviens bien, max_connections ne limite pas le nombre de connexions vous peut s'ouvrir sur le serveur MySQL, mais le nombre total de connexions qui peut être ouvert sur ce serveur, par toute personne qui s'y connecte .

Citant la documentation de MySQL sur Trop de connexions :

Donc, en fait, le problème ne vient peut-être pas de vous ni de votre code (ce qui semble bien, en fait) :il se peut "juste" que vous ne soyez pas le seul à essayer de vous connecter à ce serveur MySQL (rappelez-vous, "hébergement mutualisé") , et qu'il y a trop de monde qui l'utilise en même temps...

... Et si j'ai raison et c'est ça , vous ne pouvez rien faire pour résoudre le problème :tant qu'il y a trop de bases de données / d'utilisateurs sur ce serveur et que max_connection est fixé à 200, vous continuerez à souffrir...


En passant :avant de retourner voir GoDaddy pour leur poser la question, ce serait bien si quelqu'un pouvait valider ce que je viens de dire ^^