Bevezetés a MySQL hibába: Túl sok kapcsolat
Ha van olyan webalkalmazása (webhely, blog, fórum stb.), Amelyre nagy a kereslet, vagyis amelyet nagyszámú felhasználó látogat meg, ez megnövekedett fogyasztást jelent a szerveren. Ha ez a webalkalmazás MySQL adatbázist használ, és a lekérdezések nagyon sokak (a web rossz programozása vagy a webet használó sok felhasználó miatt), lehetséges, hogy a MySQL megmutatja ezt a hibát:
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 másik módja a maximális korlát megváltoztatása, de MySQL lekérdezéssel.
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 megadásához készíthet egy bash parancsfájlt, amely minden X alkalommal ellenőriz, vagy akár hozzáadhatja a sort a démon kezdő vagy újraindító blokkjához 😉
De akkor miért akarom tudni ezt a 2. lehetőséget? ... nos, ezt szoktam mondani. De egy hónappal ezelőtt egy Ubuntu Server figyelmen kívül hagyta az 1. módszert, így ... a buta operációs rendszer extrém eseteiben van ez a 2. lehetőség, amely ugyanolyan jól működik 😉
Jó hozzászólás, MySql ... sokat használnak a FreeBSD-ben, ... .KZKG ^ Gaara?, ... Jó lenne, ha beírnád a MySql telepítését és konfigurálását a FreeBSD-ben, például: SSH (biztonságos - shell), SSH (weben keresztül), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 és PhpSysInfo kiterjesztések.
Ehhez telepítenem kellene a FreeBSD-t, nem hiszem, hogy most lenne időm, csak munkahelyet cseréltem, és sok új feladatom van
Nemrégiben valami hasonlót kellett megcsinálnom egy projektnél a nodejs-szal. Esetemben 250-re nőtt, és ez elég volt, egyelőre jól vagyok. Köszönöm a tájékoztatást
Helló, tudna segíteni, hogyan kell megadni az /etc/mysql/my.cfg fájlt?
Van VPS-em, de nem tudok bejutni a PUTTY-val.
Üdvözlet.
Az 1. opció - Megjegyzések opció problémájának megoldásához és a változások megtartásához a kiszolgáló újraindításakor a fájlt a verziónak megfelelően kell szerkeszteni:
////////////////////////////////////////////////////// ////////////////////
// Megváltoztatom a könyvtárat az Ubuntu 16.04-ben //////////////////////////
////////////////////////////////////////////////////// ////////////////////
Láttam az /etc/mysql/mysql.conf.d/mysqld.cnf fájlt
////////////////////////////////////////////////////// ////////////////////
// Megváltoztatom a könyvtárat az Ubuntu 15.04-ben //////////////////////////
////////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
////////////////////////////////////////////////////// ////////////////////
// Megváltoztatom a régi Ubuntu könyvtárát //////////////////////////
////////////////////////////////////////////////////// ////////////////////
Láttam az /etc/mysql/my.cnf fájlt
////////////////////////////////////////////////////// ////////////////////
// adja hozzá ezt a sort a [mysqld] vagy [mysql] címke alá //
// Ezután indítsa újra a kiszolgálót //
////////////////////////////////////////////////////// ////////////////////
max_kapcsolatok = 500
A bemutató a semmiből egy pillanat alatt nem mondja meg, hogyan kell megváltoztatni