A MySQL hiba kijavítása: Túl sok kapcsolat

Bevezetés a MySQL hibába: Túl sok kapcsolat

Ha egy webes alkalmazásod (weboldal, blog, fórum stb.) nagy forgalmat bonyolít le, azaz nagyszámú felhasználó látogatja, az megnövekedett szervererőforrás-felhasználást eredményez. Ha ez a webes alkalmazás MySQL adatbázist használ, és a lekérdezések száma nagyon magas (a rossz weboldal-programozás vagy a nagyszámú felhasználó miatt ), a MySQL a következő hibát jelenítheti meg:

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

Mit jelent a MySQL: Túl sok kapcsolat hiba?

Ez azt jelenti, hogy túl sok kérés érkezik a MySQL-hez, több, mint amennyit el tud fogadni, több, mint amennyit sorba állíthat vagy várhat.

Hogyan lehet megoldani?

Egyszerű, meg kell növelnünk a MySQL által támogatott kérések (kapcsolatok) maximális számát.

Két lehetőséget adok a probléma megoldására:

1. Szerkesztjük az /etc/mysql/my.cfg fájlt:

nano /etc/mysql/my.cfg

Ebben a következőket tesszük a [mysql] felirat alá:

max_connections = 500 max_user_connections = 500

Ez a kapcsolatok maximális számát 100-ról (ami az alapértelmezett) 500-ra növeli.

Mentünk és kilépünk, majd újraindítjuk a MySQL szolgáltatást, és kész. Ez a változás végleges.

2. A probléma megoldásának egy másik módja a maximális korlát megváltoztatása, de MySQL lekérdezés használatával.

Mutassuk először az aktuális határt:

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

Ez valami ilyesmit mutat nekünk:

+ ----------------- + ------- + | Változó_neve Érték | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Más szavakkal, a jelenlegi korlát 151 kapcsolat, nos, emeljük 500-ra egy lekérdezés segítségével:

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

Kész!

Ilyen módon az a probléma, hogy a szolgáltatás újraindításakor ez a konfiguráció elvész.

Ennek a részletnek a pótlására készíthet egy bash szkriptet, amely minden X alkalommal ellenőrzi, vagy akár hozzáadhatja a sort a démon indító vagy újraindítási blokkjához 

De akkor miért akarom tudni ezt a 2. lehetőséget? … nos, ezt mondtam. De egy hónappal ezelőtt egy Ubuntu szerver figyelmen kívül hagyta az 1-es metódust, szóval... a hülye operációs rendszer szélsőséges eseteiben megvan ez a 2. lehetőség, ami ugyanolyan jól működik 


Hozzáadás előnyben részesített forrásként a Google-ben