„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 😉
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.
Norėdami tai padaryti, turėčiau įdiegti „FreeBSD“, nemanau, kad dabar turiu laiko, tiesiog pakeičiau darbą ir turiu daug naujų pareigų 🙁
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ą
Sveiki, gal galėtumėte man padėti įvesti /etc/mysql/my.cfg?
Turiu VPS, bet negaliu patekti į PUTTY.
Sveikinimai.
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
Pamoka nuo nulio niekada nepateikia, kaip ją pakeisti