Kaip ištaisyti „MySQL“ klaidą: per daug jungčių

„MySQL“ klaidos įvadas: per daug jungčių

Kai turite žiniatinklio programą (svetainę, tinklaraštį, forumą ir pan.), Kurios paklausa yra didžiausia, tai yra, lankosi daug vartotojų, tai reiškia padidėjusį serverio vartojimą. Jei šioje žiniatinklio programoje naudojama „MySQL“ duomenų bazė ir užklausų yra tikrai daug (dėl netinkamo žiniatinklio programavimo arba daugelio žiniatinklį naudojančių vartotojų), yra galimybė, kad MySQL parodys šią klaidą:

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

Ką reiškia „MySQL: per daug jungčių“ klaida?

Tai reiškia, kad į „MySQL“ gaunama per daug užklausų, daugiau nei ji gali priimti, daugiau nei gali eilėje ar laukti.

Kaip tai išspręsti?

Paprasta, turime padidinti maksimalų „MySQL“ palaikomų užklausų (ryšių) limitą.

Aš pateiksiu dvi galimybes išspręsti šią problemą:

1. Redaguojame failą /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Jame mes dedame šiuos dalykus, kur parašyta [mysql]:

max_connections = 500 max_user_connections = 500

Tai padidins maksimalų jungčių skaičių nuo 100 (tai yra numatytasis nustatymas) iki 500.

Mes išsaugome ir išeiname, tada perkrauname „MySQL“ paslaugą ir viskas. Šis pokytis yra nuolatinis.

2. Kitas būdas išspręsti šią problemą yra pakeisti maksimalią ribą, bet naudojant „MySQL“ užklausą.

Pirmiausia parodykime dabartinę ribą:

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

Tai mums parodys maždaug taip:

+ ----------------- + ------- + | Kintamasis_vardas | Vertė + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Kitaip tariant, dabartinė riba yra 151 ryšys, pakelkime ją iki 500 naudodami užklausą:

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

Paruošta!

Tokiu būdu kyla problema, kad paleidus paslaugą iš naujo, ši konfigūracija prarandama.

Norėdami pateikti šią informaciją, galite sukurti „bash“ scenarijų, kurį kiekvieną kartą patikrina X, arba netgi pridėti eilutę prie „deemon“ pradžios arba iš naujo paleisti bloką 😉

Bet kodėl tada noriu žinoti šį 2 variantą? ... na, tai aš sakydavau. Tačiau prieš mėnesį „Ubuntu Server“ nepaisė metodo Nr. 1, taigi ... kraštutiniais kvailos OS atvejais turime šią antrąją parinktį, kuri veikia taip pat gerai 😉


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   šalia sakė

    Geras įrašas, MySql ... jie daug naudoja FreeBSD, ... .KZKG ^ Gaara?, ... Būtų gerai, jei paskelbtumėte įrašą apie tai, kaip įdiegti ir konfigūruoti „MySql“ „FreeBSD“, pvz .: SSH (saugus - apvalkalas), SSH (per internetą), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 ir PhpSysInfo plėtiniai.

    1.    KZKG ^ Gaara sakė

      Norėdami tai padaryti, turėčiau įdiegti „FreeBSD“, nemanau, kad dabar turiu laiko, tiesiog pakeičiau darbą ir turiu daug naujų pareigų 🙁

  2.   Saulius sakė

    Neseniai teko padaryti kažką panašaus projektui su „nodejs“. Mano atveju aš padidinau iki 250 ir man to pakako, kol kas man viskas gerai. Ačiū už informaciją

  3.   Franciskas sakė

    Sveiki, gal galėtumėte man padėti įvesti /etc/mysql/my.cfg?

    Turiu VPS, bet negaliu patekti į PUTTY.

    Sveikinimai.

  4.   masalas sakė

    Norėdami išspręsti 1 parinkties komentuojamos parinkties problemą ir palikti pakeitimus iš naujo paleisdami serverį, failą reikia redaguoti pagal versiją:

    ////////////////////////////////////////////////////// ////////////////////
    // Aš pakeičiu katalogą „Ubuntu“ 16.04 //////////////////////////
    ////////////////////////////////////////////////////// ////////////////////
    Mačiau /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////////// ////////////////////
    // Aš pakeičiu katalogą „Ubuntu“ 15.04 //////////////////////////
    ////////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////////// ////////////////////
    // Aš pakeičiu seno Ubuntu katalogą //////////////////////////
    ////////////////////////////////////////////////////// ////////////////////

    Mačiau /etc/mysql/my.cnf

    ////////////////////////////////////////////////////// ////////////////////
    // pridėkite šią eilutę po žyma [mysqld] arba [mysql] //
    // Tada paleiskite serverį iš naujo //
    ////////////////////////////////////////////////////// ////////////////////
    max_connections = 500

  5.   pasipiktinęs sakė

    Pamoka nuo nulio niekada nepateikia, kaip ją pakeisti