The
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 пікір, өз пікіріңізді қалдырыңыз
Жақсы хабарлама, MySql ... олар FreeBSD,… .KZKG ^ Gaara-да көп пайдаланады, ... Сіз MySql-ді FreeBSD-ге қалай орнатуға және теңшеуге болатындығы туралы хабарлама жасасаңыз жақсы болар еді: SSH (safe - shell), SSH ( Web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 және PhpSysInfo кеңейтімдері.
Ол үшін FreeBSD-ді орнатуым керек еді, менің ойымша, қазір уақытым жоқ, мен жай жұмыс ауыстырдым және көптеген жаңа міндеттерім бар 🙁
Жақында nodejs бар жоба үшін ұқсас нәрсе жасауым керек болды. Менің жағдайымда бұл 250-ге дейін өсті және бұл жеткілікті болды, қазір мен жақсы жұмыс істеп жатырмын. Ақпарат үшін рахмет
Сәлеметсіз бе, маған /etc/mysql/my.cfg-ге қалай кіруге көмектесесіз?
Менде VPS бар, бірақ мен PUTTY-ге кіре алмаймын.
Құттықтаулар.
Опция 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
Ешқашан нөлден оқулық оны қалай өзгерту керектігін айтады