Как да коригирам грешката на 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";'

Това ще ни покаже нещо подобно:

+ ----------------- + ------- + | Име на променлива | Стойност | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

С други думи, текущото ограничение е 151 връзки, добре, нека го повишим до 500 чрез заявка:

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

Готов!

Проблемът по този начин е, че когато услугата се рестартира, тази конфигурация се губи.

За да предоставите тази подробност, можете да направите bash скрипт, който да проверява всеки X път, или дори да добавите реда към стартовия или рестартиращия блок на демона 😉

Но защо тогава искам да знам този втори вариант? ... е, това казвах преди. Но преди месец сървър на Ubuntu игнорира метод №2, така че ... в екстремни случаи на глупава операционна система имаме тази втора опция, която работи също толкова добре 😉


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   следващ каза той

    Добър пост, MySql ... те използват много във FreeBSD, ... .KZKG ^ Gaara?, ... Би било добре, ако направите публикация, за това как да инсталирате и конфигурирате MySql във FreeBSD като: SSH (защитен - черупка), SSH (чрез уеб), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 и PhpSysInfo Разширения.

    1.    KZKG ^ Гаара каза той

      За това ще трябва да инсталирам FreeBSD, не мисля, че имам време в момента, просто смених работата и имам много нови отговорности

  2.   Саул каза той

    Наскоро трябваше да направя нещо подобно за проект с nodejs. В моя случай тя се увеличи до 250 и това ми беше достатъчно, засега се справям добре. Благодаря за информацията

  3.   Франциско каза той

    Здравейте, бихте ли ми помогнали как да въведа /etc/mysql/my.cfg?

    Имам VPS, но не мога да вляза с PUTTY.

    Поздрави.

  4.   стръв каза той

    За да разрешите проблема с опция 1. - Коментирана опция и запазване на промените при рестартиране на сървъра, файлът трябва да бъде редактиран според версията:

    ////////////////////////////////////////////////// ////////////////////
    // Сменям директорията в Ubuntu 16.04 //////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    VI /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Сменям директорията в Ubuntu 15.04 //////////////////////////
    ////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// ////////////////////
    // Сменям директорията в Ubuntu old //////////////////////////
    ////////////////////////////////////////////////// ////////////////////

    Видях /etc/mysql/my.cnf

    ////////////////////////////////////////////////// ////////////////////
    // добавете този ред под тага [mysqld] или [mysql] //
    // След това рестартирайте сървъра //
    ////////////////////////////////////////////////// ////////////////////
    max_connections = 500

  5.   възмутен каза той

    Урокът от нулата в нито един момент ви казва как да го промените