Начини плаћања Abuse

Ошибка 2006: МиСКЛ Сервер је нестао

09.03.2021, 22:01

Грешка 2006 под називом МиСКЛ Север је нестала значи да сервер одбија да се повеже иако ради. Постоје само три позната разлога зашто се грешка појављује. Први разлог је тај што је сервер преоптерећен. Време чекања је истекло. Други разлог је тај што је клијент послао пакет који је био превише болестан. Треће, сервер није у потпуности иницијализован. Затим ћемо детаљно размотрити зашто се грешка појављује и како се носити са њом.

Како исправити грешку

Обично се грешка појављује када покушавате да се повежете са базом података помоћу ПХП-а, клијента конзоле или када користите ПхпМиАдмин:

ПхпМиАдмин

Погледајмо даље сваку ситуацију посебно.

Истекло је време

Као што је поменуто на почетку чланка, један од могућих разлога је временско ограничење. Можда је сервер био преоптерећен и не може да се носи са оптерећењем обраде свих веза. Да бисте разумели колико дуго је потребно да се захтеви сервера заврше, можете користити било који клијент конзоле и повезати се са сервером. Ако успете да то урадите, испуните било који захтев. Ако је потребно предуго за обраду упита, можете оптимизовати МиСКЛ помоћу посебне МиСКЛТунер скрипте. Обично се величина групе ИнноДБ мотора повећава постављањем параметра innodb_buffer_pool_size . Оптимална вредност се одређује коришћењем горње скрипте.

Ако је 800 мегабајта (можда је другачија величина), пишемо:

 $ sudo vi /etc/mysql/my.cnf innodb_buffer_pool_size=800M

хттпс://пк.хостинг/хелп/мифилес/мисклхасгонеаваи-991к576.пнг

Постоји још један начин да се реши проблем. Да бисте то урадили, време одговора са сервера се повећава. Да бисте извршили овај задатак, морате променити параметар wait_timeout . Ово је време у секундама током којег треба да сачекате одговор од сервера.

на пример:

 wait_timeout=500

параметар ваит_тимеоут

Када правите измене, не заборавите да поново покренете сервер:

 $ sudo systemctl restart mysql

или:

 $ sudo systemctl restart mariadb

Пакет је превелик

Када корисников клијент креира превише пакета, сервер ће избацити ову тачну грешку. Доступна величина пакета (максимална вредност) може се повећати коришћењем параметра max_allowed_packet .

на пример:

 $ sudo vi /etc/mysql/my.cnf max_allowed_packet=128M

Посебно обратите пажњу на клијента, јер ако шаље много захтева, онда очигледно нешто радите погрешно. У најмању руку, не би требало да генеришете упите за МиСКЛ користећи for петље.

Сервер није исправно иницијализован

Ако одлучите да примените МиСКЛ или МариаДБ у Доцкер-у, будите спремни да наиђете на сличну грешку. Иницијална иницијализација контејнера захтева мало више слободног времена. Ако не дозволите контејнеру да заврши иницијализацију тако што ћете га прво зауставити и покренути, база података ће увек враћати ову грешку. Решење је потпуно брисање података контејнера са базом података.

Ово се ради овако:

 $ docker-compose down

или:

 $ docker rm mysql-container

Затим морате да избришете складиште (волумен) са погрешно иницијализованом базом података. Али прво погледајте листу свих спремишта:

 $ docker volume ls

СЕРВЕР ЈЕ НЕИСПРАВНО ИНИЦИЈАЛИЗОВАН

Затим бришемо:

 $ docker volume rm volume_name

Сада можете да почнете да иницијализујете апликацију, само сачекајте да сервер базе података пријави да је спремна и можете се повезати са њом.