sql >> Database >  >> RDS >> Mysql

MySQL-fout Te veel verbindingen

Shared-hosting providers staan ​​over het algemeen een vrij klein aantal gelijktijdige verbindingen toe voor dezelfde gebruiker.

Wat uw code doet is:

  • open een verbinding met de MySQL-server
  • do it's stuff (de pagina genereren)
  • sluit de verbinding aan het einde van de pagina.

De laatste stap, wanneer gedaan aan het einde van de pagina, is niet verplicht :(onder vermelding van mysql_close handleiding) :

Maar merk op dat u waarschijnlijk toch geen permanente verbindingen moet gebruiken...

Twee tips:

  • gebruik mysql_connect in plaats van mysql_pconnect (al OK voor jou)
  • Stel de vierde parameter van mysql_connect in op false (al OK voor jou, aangezien dit de standaardwaarde is) :(citaat uit de handleiding) :


Wat zou het probleem dan kunnen veroorzaken?

Misschien probeert u meerdere pagina's tegelijk te openen (bijvoorbeeld door meerdere tabbladen in uw browser te gebruiken) , waarmee wordt gesimuleerd dat meerdere gebruikers tegelijkertijd de website gebruiken ?

Als u veel gebruikers tegelijkertijd de site gebruikt en de code tussen mysql_connect en het sluiten van de verbinding kost veel tijd, het betekent dat er veel verbindingen tegelijkertijd worden geopend... En je bereikt de limiet :-(

Maar aangezien u de enige gebruiker van de applicatie bent, is er iets vreemds aan de hand...


Nou, denkend aan "te veel connecties " en "max_connections "...

Als ik het me goed herinner, max_connections beperkt niet het aantal verbindingen jij kan openen naar de MySQL-server, maar het totale aantal verbindingen die naar die server kan worden geopend, door iedereen die er verbinding mee maakt .

Het citeren van MySQL-documentatie over Te veel verbindingen :

Dus eigenlijk komt het probleem misschien niet van jou of je code (die er eigenlijk goed uitziet) :het kan "gewoon" zijn dat u niet de enige bent die verbinding probeert te maken met die MySQL-server (onthoud, "shared hosting") , en dat er te veel mensen het tegelijkertijd gebruiken...

... En als ik gelijk heb en dat is het , kunt u niets doen om het probleem op te lossen:zolang er te veel databases / gebruikers op die server zijn en dat max_connection is ingesteld op 200, zult u blijven lijden...


Als een kanttekening:voordat ik terugga naar GoDaddy om hen daarover te vragen, zou het fijn zijn als iemand kon bevestigen wat ik zojuist heb gezegd ^^



  1. Hoe verschilt het gebruik van OR in een MySQL-statement precies met/zonder haakjes?

  2. Forceer MySQL om duplicaten van de WHERE IN-clausule te retourneren zonder JOIN/UNION te gebruiken?

  3. Database kopiëren/dupliceren zonder mysqldump

  4. hoe de standaardwaarde voor teksttype in mysql in te stellen