Så här åtgärdar du MySQL-felet: För många anslutningar

Introduktion till MySQL-felet: För många anslutningar

När du har en webbapplikation (webbplats, blogg, forum, etc.) som är mycket efterfrågad, det vill säga ett stort antal användare besöker, innebär det en ökad konsumtion på servern. Om nämnda webbapp använder en MySQL-databas och frågorna är riktigt många (på grund av dålig programmering av webben eller av många användare som använder webben) finns det en möjlighet att MySQL visar detta fel:

mysqli_connect(): (HY000/1040): Too many connections

Vad betyder MySQL: Too Many Connections-felet?

Det betyder att för många förfrågningar kommer in i MySQL, mer än det kan acceptera, mer än vad det kan stå i kö eller vänta.

Hur löser man det?

Enkelt, vi måste öka den maximala gränsen för förfrågningar (anslutningar) som MySQL stöder.

Jag ger dig två alternativ för att lösa detta problem:

1. Vi redigerar filen /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

I den lägger vi följande under där det står [mysql]:

max_connections = 500 max_user_connections = 500

Detta ökar det maximala antalet anslutningar från 100 (vilket är standard) till 500.

Vi sparar och avslutar, sedan startar vi om MySQL-tjänsten och det är det. Denna förändring är permanent.

2. Ett annat sätt att lösa detta problem är att ändra den maximala gränsen lika, men genom en MySQL-fråga.

Låt oss först visa den nuvarande gränsen:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Detta kommer att visa oss ungefär så här:

+ ----------------- + ------- + | Variabel_namn | Värde | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Med andra ord är den nuvarande gränsen 151 anslutningar, ja, låt oss höja den till 500 med hjälp av en fråga:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Redo!

Problemet på det här sättet är att när tjänsten startas om förloras denna konfiguration.

För att tillhandahålla denna detalj kan du skapa ett bash-skript som varje X-gång verifierar, eller till och med lägga till raden i daemonens start- eller omstartblock 😉

Men varför vill jag veta det andra alternativet? ... ja, det var vad jag brukade säga. Men för en månad sedan ignorerade en Ubuntu Server metod nr 2, så ... i extrema fall av dumt OS har vi det andra alternativet som fungerar lika bra 😉


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

6 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   nex sade

    Bra inlägg, MySql ... de använder mycket i FreeBSD, .... KZKG ^ Gaara?, ... Det skulle vara bra om du gör ett inlägg om hur du installerar och konfigurerar MySql i FreeBSD som: SSH (säker - skal), SSH ( via webben), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 och PhpSysInfo-tillägg.

    1.    KZKG ^ Gaara sade

      För detta skulle jag behöva installera FreeBSD, jag tror inte att jag har tid just nu, jag har bara bytt jobb och jag har många nya ansvarsområden 🙁

  2.   Saul sade

    Jag var nyligen tvungen att göra något liknande för ett projekt med nodejs. I mitt fall ökade det till 250 och det räckte för mig, för nu går det bra. Tack för informationen

  3.   Francisco sade

    Hej, kan du hjälpa mig att skriva in /etc/mysql/my.cfg?

    Jag har en VPS, men jag kan inte komma in med PUTTY.

    Hälsningar.

  4.   bete sade

    För att lösa problemet med alternativet 1.- Kommenterade och behålla ändringarna när du startar om servern måste filen redigeras enligt version:

    ////////////////////////////////////////////////// ////////////////////
    // Ändra katalog i Ubuntu 16.04 //////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Ändra katalog i Ubuntu 15.04 //////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Jag ändrar katalogen i Ubuntu gamla ////////////////////////
    ////////////////////////////////////////////////// ////////////////////

    vi /etc/mysql/my.cnf

    ////////////////////////////////////////////////// ////////////////////
    // lägg till den här raden under taggen [mysqld] eller [mysql] //
    // Starta sedan om servern //
    ////////////////////////////////////////////////// ////////////////////
    max_anslutningar = 500

  5.   indignerad sade

    Självstudier från grunden säger aldrig hur du ändrar det