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

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 😉


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   nEX dijo

    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.

    1.    KZKG ^ Gaara dijo

      Ehhez telepítenem kellene a FreeBSD-t, nem hiszem, hogy most lenne időm, csak munkahelyet cseréltem, és sok új feladatom van

  2.   Saul dijo

    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

  3.   Francisco dijo

    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.

  4.   csali dijo

    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

  5.   felháborodott dijo

    A bemutató a semmiből egy pillanat alatt nem mondja meg, hogyan kell megváltoztatni