Kako ispraviti pogrešku MySQL: Previše veza

Uvod u pogrešku MySQL: Previše veza

Kada imate web aplikaciju (stranicu, blog, forum itd.) koja ima veliku potražnju, što znači da je posjećuje veliki broj korisnika, to se prevodi u povećanu potrošnju resursa poslužitelja. Ako ova web aplikacija koristi MySQL bazu podataka i upiti su vrlo brojni ( zbog lošeg programiranja web stranice ili velikog broja korisnika ), MySQL može prikazati ovu grešku:

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

Što znači pogreška MySQL: Previše veza?

To znači da previše zahtjeva dolazi u MySQL, više nego što može prihvatiti, više nego što može staviti u red ili čekati.

Kako to riješiti?

Jednostavno, moramo povećati maksimalno ograničenje zahtjeva (veza) koje MySQL podržava.

Dat ću vam dvije mogućnosti da riješite ovaj problem:

1. Uredimo datoteku /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

U nju stavljamo sljedeće ispod gdje piše [mysql]:

max_connections = 500 max_user_connections = 500

To će povećati maksimalni broj veza sa 100 (što je zadana vrijednost) na 500.

Spremimo i izađemo, zatim ponovno pokrećemo MySQL uslugu i to je to. Ova promjena je trajna.

2. Drugi način rješavanja ovog problema je promjena maksimalnog ograničenja, ali korištenjem MySQL upita.

Pokažimo prvo trenutno ograničenje:

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

Ovo će nam pokazati otprilike ovako:

+ ----------------- + ------- + | Naziv_varijable | Vrijednost | + ----------------- + ------- + | max_veze | 151 | + ----------------- + ------- +

Drugim riječima, trenutačno ograničenje je 151 veza, pa, povisimo ga na 500 pomoću upita:

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

Spremni!

Problem na ovaj način je taj što se prilikom ponovnog pokretanja usluge ova konfiguracija gubi.

Da biste nadoknadili ovaj detalj, možete napraviti bash skriptu koja provjerava svakih X vremena, ili čak dodati redak na početak ili ponovno pokretanje bloka daemona 

Ali zašto onda želim znati ovu drugu opciju? … pa, to sam i rekao. Ali prije mjesec dana Ubuntu Server ignorirao je metodu br. 2, pa... u ekstremnim slučajevima glupog OS-a, imamo ovu drugu opciju koja jednako dobro radi 


Dodaj kao preferirani izvor na Googleu