Kako popraviti napako MySQL: Preveč povezav

Uvod v napako MySQL: Preveč povezav

Ko imate spletno aplikacijo (spletno mesto, blog, forum itd.), ki je zelo obiskana, kar pomeni, da jo obišče veliko število uporabnikov, to pomeni povečano porabo strežniških virov. Če ta spletna aplikacija uporablja podatkovno bazo MySQL in so poizvedbe zelo številne ( zaradi slabega programiranja spletnega mesta ali velikega števila uporabnikov ), lahko MySQL prikaže to napako:

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

Kaj pomeni napaka MySQL: Too Many Connections?

To pomeni, da v MySQL prihaja preveč prošenj, več kot jih lahko sprejme, več kot jih lahko čaka v čakalni vrsti.

Kako to rešiti?

Preprosto, povečati moramo največjo mejo zahtev (povezav), ki jih podpira MySQL.

Dala vam bom dve možnosti za odpravo te težave:

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

nano /etc/mysql/my.cfg

Vanj spodaj, kjer piše [mysql], damo naslednje:

max_connections = 500 max_user_connections = 500

To bo povečalo največje število povezav s 100 (kar je privzeto) na 500.

Shranimo in zapremo, nato ponovno zaženemo storitev MySQL in to je to. Ta sprememba je trajna.

2. Drug način za rešitev te težave je sprememba največje omejitve, vendar z uporabo poizvedbe MySQL.

Pokažimo najprej trenutno omejitev:

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

To nam bo pokazalo nekaj takega:

+ ----------------- + ------- + | Ime_premenljivke | Vrednost | + ----------------- + ------- + | največ_povezav | 151 | + ----------------- + ------- +

Z drugimi besedami, trenutna omejitev je 151 povezav, povišamo jo na 500 s pomočjo poizvedbe:

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

Pripravljen!

Težava na ta način je, da se ob ponovnem zagonu storitve ta konfiguracija izgubi.

Da nadomestite to podrobnost, lahko naredite skript bash, ki preverja vsakih X časa, ali celo dodate vrstico v začetni ali ponovni zagon demona 

Toda zakaj potem želim vedeti to drugo možnost? … no, to sem rekel. Toda pred enim mesecem je strežnik Ubuntu prezrl metodo št. 2, tako da ... v skrajnih primerih neumnega operacijskega sistema imamo to drugo možnost, ki deluje enako dobro 


Dodaj kot prednostni vir v Googlu