Sådan løses MySQL-fejlen: For mange forbindelser

Introduktion til MySQL-fejlen: For mange forbindelser

Når du har en webapplikation (site, blog, forum osv.), Der er meget efterspurgt, dvs. et stort antal brugere besøger, betyder det øget forbrug på serveren. Hvis nævnte webapp bruger en MySQL-database, og forespørgslerne er virkelig mange (på grund af dårlig programmering af internettet eller af mange brugere, der bruger internettet), er der en mulighed for, at MySQL viser denne fejl:

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

Hvad betyder MySQL: For mange forbindelsesfejl?

Det betyder, at der kommer for mange anmodninger til MySQL, mere end det kan acceptere, mere end det kan stå i kø eller vente.

Hvordan løses det?

Enkelt, vi skal øge den maksimale grænse for anmodninger (forbindelser), som MySQL understøtter.

Jeg giver dig to muligheder for at løse dette problem:

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

nano /etc/mysql/my.cfg

I det sætter vi følgende under hvor det står [mysql]:

max_connections = 500 max_user_connections = 500

Dette øger det maksimale antal forbindelser fra 100 (som er standard) til 500.

Vi gemmer og afslutter, derefter genstarter vi MySQL-tjenesten, og det er det. Denne ændring er permanent.

2. En anden måde at løse dette problem er at ændre den maksimale grænse lig, men gennem en MySQL-forespørgsel.

Lad os først vise den aktuelle grænse:

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

Dette vil vise os noget som dette:

+ ----------------- + ------- + | Variabel_navn | Værdi | + ----------------- + ------- + | max_forbindelser | 151 | + ----------------- + ------- +

Med andre ord er den nuværende grænse 151 forbindelser, ja, lad os hæve den til 500 ved hjælp af en forespørgsel:

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

Klar!

Problemet på denne måde er, at når konfigurationen genstartes, går konfigurationen tabt.

For at levere denne detalje kan du oprette et bash-script, der verificerer hver X-gang, eller endda tilføje linjen til start- eller genstartblokken for dæmonen 😉

Men hvorfor vil jeg så kende denne anden mulighed? ... ja, det var det, jeg plejede at sige. Men for en måned siden ignorerede en Ubuntu Server metode nr. 2, så ... i ekstreme tilfælde af fjollet OS har vi denne 1. mulighed, der fungerer lige så godt 😉


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   nex sagde han

    Godt indlæg, MySql… de bruger meget i FreeBSD, .... (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 og PhpSysInfo Extensions.

    1.    KZKG ^ Gaara sagde han

      Til dette bliver jeg nødt til at installere FreeBSD, jeg tror ikke jeg har tid lige nu, jeg har lige skiftet job og jeg har mange nye ansvarsområder 🙁

  2.   Saul sagde han

    Jeg var for nylig nødt til at gøre noget lignende til et projekt med nodejs. I mit tilfælde steg det til 250, og det var nok, for nu har jeg det fint. Tak for oplysningerne

  3.   Francisco sagde han

    Hej, kan du hjælpe mig med at indtaste /etc/mysql/my.cfg?

    Jeg har en VPS, men jeg kan ikke komme ind med PUTTY.

    Greetings.

  4.   lokkemad sagde han

    For at løse problemet med Option 1. - Kommenteret mulighed og beholde ændringerne, når du genstarter serveren, skal filen redigeres i henhold til version:

    ////////////////////////////////////////////////// ////////////////////
    // Jeg ændrer biblioteket i Ubuntu 16.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    Jeg så /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Jeg ændrer biblioteket i Ubuntu 15.04 ////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Jeg ændrer biblioteket i Ubuntu gamle ////////////////////////
    ////////////////////////////////////////////////// ////////////////////

    Jeg så /etc/mysql/my.cnf

    ////////////////////////////////////////////////// ////////////////////
    // tilføj denne linje under [mysqld] eller [mysql] tag //
    // Genstart derefter serveren //
    ////////////////////////////////////////////////// ////////////////////
    max_forbindelser = 500

  5.   indigneret sagde han

    Vejledning fra bunden på ingen tid fortæller dig, hvordan du ændrer den