MySQL-i vea parandamine: liiga palju ühendusi

MySQL-i vea sissejuhatus: liiga palju ühendusi

Kui teil on veebirakendus (veebisait, ajaveeb, foorum jne), millel on suur nõudlus, mis tähendab, et seda külastab palju kasutajaid, tähendab see serveri ressursitarbimise suurenemist. Kui see veebirakendus kasutab MySQL-i andmebaasi ja päringuid on väga palju ( halva veebisaidi programmeerimise või suure kasutajate arvu tõttu ), võib MySQL kuvada järgmise vea:

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

Mida tähendab viga MySQL: liiga palju ühendusi?

See tähendab, et MySQL-i on saabumas liiga palju taotlusi, rohkem kui ta suudab vastu võtta, rohkem kui järjekorda või oodata.

Kuidas seda lahendada?

Lihtne, peame suurendama taotluste (ühenduste) maksimaalset limiiti, mida MySQL toetab.

Annan teile selle probleemi lahendamiseks kaks võimalust:

1. Redigeerime faili /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

Selles paneme allpool, kus on kirjas [mysql] järgmine:

max_connections = 500 max_user_connections = 500

See suurendab ühenduste maksimaalset arvu 100-lt (mis on vaikimisi) 500-ni.

Salvestame ja väljume, seejärel taaskäivitame MySQL-i teenuse ja kõik. See muudatus on püsiv.

2. Teine viis selle probleemi lahendamiseks on maksimaalse limiidi muutmine, kuid MySQL-päringu abil.

Näitame kõigepealt praegust piiri:

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

See näitab meile midagi sellist:

+ ----------------- + ------- + | Muutuja_nimi | Väärtus | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Teisisõnu, praegune piir on 151 ühendust, tõstame selle päringu abil 500-ni:

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

Valmis!

Sel moel on probleem see, et teenuse taaskäivitamisel kaotatakse see konfiguratsioon.

Selle detaili korvamiseks võite luua bash-skripti, mis kontrollib iga X aja tagant, või isegi lisada rea ​​deemoni algus- või taaskäivitusplokki 

Aga miks ma siis seda teist varianti teada tahan? … noh, seda ma ütlesin. Kuid kuu aega tagasi eiras Ubuntu server meetodit nr 2, nii et... lolli operatsioonisüsteemi äärmuslikel juhtudel on meil see 1. võimalus, mis töötab sama hästi 


Lisa eelistatud allikana Google'is