sql >> Databáze >  >> RDS >> Mysql

Chyba MySQL Příliš mnoho připojení

Poskytovatelé sdíleného hostingu obecně umožňují velmi malé množství současných připojení pro stejného uživatele.

Váš kód dělá:

  • otevřete připojení k serveru MySQL
  • udělejte to (vygenerujte stránku)
  • uzavřete připojení na konci stránky.

Poslední krok, který se provádí na konci stránky, není povinný :(cituji mysql_close manuál) :

Ale mějte na paměti, že byste pravděpodobně neměli používat trvalá připojení...

Dva tipy:

  • použijte mysql_connect namísto mysql_pconnect (již v pořádku)
  • Nastavte čtvrtý parametr mysql_connect na false (pro vás je to již v pořádku, protože je to výchozí hodnota) :(cituji manuál) :


Co by tedy mohlo způsobit problém?

Možná se pokoušíte přistupovat k několika stránkám paralelně (například pomocí více karet v prohlížeči) , který bude simulovat několik uživatelů používajících web současně?

Pokud web používá mnoho uživatelů současně a kód mezi mysql_connect a uzavření spojení zabere spoustu času, bude to znamenat otevření mnoha spojení současně... A dosáhnete limitu :-(

Přesto, protože jste jediným uživatelem aplikace, vzhledem k tomu, že máte povoleno až 200 současných připojení, děje se něco zvláštního...


Přemýšlím o „příliš mnoho připojení “ a „max_connections "...

."

Pokud si dobře pamatuji, max_connections neomezuje počet spojení vás lze otevřít k serveru MySQL, ale celkový počet připojení které lze otevřít na daném serveru kdokoli, kdo se k němu připojí .

Citace dokumentace MySQL o Příliš mnoho připojení :

Takže ve skutečnosti problém nemusí pocházet od vás ani od vašeho kódu (který ve skutečnosti vypadá dobře) :může to být "jen" tím, že nejste jediný, kdo se pokouší připojit k tomuto serveru MySQL (nezapomeňte, "sdílený hosting") a že jej používá příliš mnoho lidí současně...

... A pokud mám pravdu a je to tak , nemůžete udělat nic, abyste problém vyřešili:pokud je na tomto serveru příliš mnoho databází/uživatelů a max_connection je nastaven na 200, budete trpět i nadále...


Jako okrajová poznámka:než se vrátím ke GoDaddy a zeptám se jich na to, bylo by hezké, kdyby někdo mohl potvrdit, co jsem právě řekl ^^



  1. Chyba:ORA-01704:řetězcový literál je příliš dlouhý

  2. Jak nahradit více znaků v SQL?

  3. Je možné použít příkaz typu LOAD DATA INFILE k UPDATE řádků v db?

  4. PHP:Načítání obrázků z MySQL Blob přímo do tagu <img>