MySQL қатесін қалай түзетуге болады: Қосылымдар тым көп

MySQL қатесіне кіріспе: тым көп байланыстар

Егер сізде веб-қосымшаның (сайттың, блогтың, форумның және т.б.) сұранысы жоғары болғанда, яғни көптеген қолданушылар кіретін болса, бұл серверде тұтынудың жоғарылауына айналады. Егер аталған веб-бағдарлама MySQL мәліметтер қорын қолданса және сұраулар шынымен көп болса (Интернеттің нашар бағдарламалануына немесе көптеген пайдаланушылардың вебті қолдануына байланысты), MySQL келесі қатені көрсетуі мүмкін:

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

MySQL: Қосылымдардың қателігі нені білдіреді?

Бұл дегеніміз, MySQL-ге қабылдау, күтуге қарағанда, қабылдаудан әлдеқайда көп сұраныстар келеді.

Оны қалай шешуге болады?

Қарапайым, біз MySQL қолдайтын сұраныстардың (байланыстардың) максималды шегін арттыруымыз керек.

Бұл мәселені шешудің екі нұсқасын ұсынамын:

1. /Etc/mysql/my.cfg файлын өңдейміз:

nano /etc/mysql/my.cfg

Онда біз [mysql] сөзінің астына мынаны қоямыз:

max_connections = 500 max_user_connections = 500

Бұл қосылымдардың максималды санын 100-ден (бұл әдепкі) 500-ге дейін арттырады.

Біз сақтаймыз және шығамыз, содан кейін MySQL қызметін қайта іске қосамыз және осымен аяқталады. Бұл өзгеріс тұрақты болып табылады.

2. Бұл мәселені шешудің тағы бір әдісі - ең үлкен шекті тең өзгерту, бірақ MySQL сұранысы арқылы.

Алдымен ағымдағы шекті көрсетейік:

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

Бұл бізге келесі нәрсені көрсетеді:

+ ----------------- + ------- + | Айнымалы_ат | Мәні | + ----------------- + ------- + | максималды байланыс | 151 | + ----------------- + ------- +

Басқаша айтқанда, қазіргі шегі 151 қосылысты құрайды, оны сұраныс арқылы 500-ге жеткізейік:

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

Дайын!

Мәселе мынада, қызметті қайта бастағанда, бұл конфигурация жоғалады.

Бұл мәліметті жеткізу үшін сіз әр X рет тексеретін бас сценарийін жасай аласыз немесе тіпті демонның басталатын немесе қайта басталатын блогына жол қосасыз 😉

Бірақ мен неге осы 2-ші нұсқаны білгім келеді? ... жақсы, мен солай айтатынмын. Бірақ бір ай бұрын Ubuntu сервері №1 әдісті елемеді, сондықтан ... ақымақ ОС-да бізде де осы 2-ші нұсқа бар, ол да жұмыс істейді 😉


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

6 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   nex дижо

    Жақсы хабарлама, MySql ... олар FreeBSD,… .KZKG ^ Gaara-да көп пайдаланады, ... Сіз MySql-ді FreeBSD-ге қалай орнатуға және теңшеуге болатындығы туралы хабарлама жасасаңыз жақсы болар еді: SSH (safe - shell), SSH ( Web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 және PhpSysInfo кеңейтімдері.

    1.    KZKG ^ Гаара дижо

      Ол үшін FreeBSD-ді орнатуым керек еді, менің ойымша, қазір уақытым жоқ, мен жай жұмыс ауыстырдым және көптеген жаңа міндеттерім бар 🙁

  2.   Саул дижо

    Жақында nodejs бар жоба үшін ұқсас нәрсе жасауым керек болды. Менің жағдайымда бұл 250-ге дейін өсті және бұл жеткілікті болды, қазір мен жақсы жұмыс істеп жатырмын. Ақпарат үшін рахмет

  3.   Francisco дижо

    Сәлеметсіз бе, маған /etc/mysql/my.cfg-ге қалай кіруге көмектесесіз?

    Менде VPS бар, бірақ мен PUTTY-ге кіре алмаймын.

    Құттықтаулар.

  4.   қармақ дижо

    Опция 1 мәселесін шешу үшін - түсініктеме берілген және серверді қайта іске қосқан кезде өзгертулерді сақтау үшін файл келесі нұсқаға сәйкес өңделуі керек:

    //////////////////////////////////////////////////////////////////////// ////////////////////
    // Ubuntu 16.04-те каталогты өзгертемін //////////////////////////
    //////////////////////////////////////////////////////////////////////// ////////////////////
    Мен /etc/mysql/mysql.conf.d/mysqld.cnf көрдім.

    //////////////////////////////////////////////////////////////////////// ////////////////////
    // Ubuntu 15.04-те каталогты өзгертемін //////////////////////////
    //////////////////////////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    //////////////////////////////////////////////////////////////////////// ////////////////////
    // Ubuntu-да каталогты ескі етіп өзгертемін /////////////////////////
    //////////////////////////////////////////////////////////////////////// ////////////////////

    Мен /etc/mysql/my.cnf файлын көрдім

    //////////////////////////////////////////////////////////////////////// ////////////////////
    // осы жолды [mysqld] немесе [mysql] тегінің астына қосыңыз //
    // Содан кейін серверді қайта іске қосыңыз //
    //////////////////////////////////////////////////////////////////////// ////////////////////
    max_connections = 500

  5.   ашуланған дижо

    Ешқашан нөлден оқулық оны қалай өзгерту керектігін айтады