Како да ја поправите грешката MySQL: Премногу врски

Вовед во грешката MySQL: Премногу врски

Кога имате веб-апликација (веб-страница, блог, форум, итн.) Која е многу побарувана, односно посетуваат голем број на корисници, ова се претвора во зголемена потрошувачка на серверот. Ако речената веб-апликација користи MySQL база на податоци и пребарувањата се навистина многу (поради лошо програмирање на мрежата или од страна на многу корисници кои користат веб), постои можност MySQL да ја покаже оваа грешка:

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

Што значи грешката MySQL: Премногу врски?

Тоа значи дека премногу барања доаѓаат во MySQL, повеќе отколку што може да прифати, повеќе отколку што може да чека во редица или да чека.

Како да се реши тоа?

Едноставно, ние мора да ја зголемиме максималната граница на барања (врски) што ги поддржува MySQL.

Willе ви дадам две опции за да го решите овој проблем:

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, затоа ... во екстремни случаи на глупав оперативен систем, ја имаме оваа втора опција што работи исто толку добро


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

6 коментари, оставете ги вашите

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

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени со *

*

*

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

  1.   сл dijo

    Добар пост, MySql… тие користат многу во FreeBSD,… .KZKG ^ Gaara?,… Би било добро ако објавите порака, за тоа како да инсталирате и конфигурирате MySql во FreeBSD како: SSH (безбедна школка), SSH (преку веб), SFTP (SSH-протокол за пренос на датотеки), Apache - PHP- MySql, PHP5 и PhpSysInfo екстензии.

    1.    КЗКГ ^ Гаара dijo

      За ова ќе морав да инсталирам FreeBSD, мислам дека немам време во моментов, јас само ги сменив работните места и имам многу нови одговорности

  2.   Саул dijo

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

  3.   Франциско dijo

    Здраво, дали може да ми помогнете како да внесам /etc/mysql/my.cfg?

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

    Поздрав.

  4.   мамка dijo

    За да го решите проблемот со опцијата 1. - Коментирана опција и да ги задржите промените при рестартирање на серверот, датотеката мора да се уреди според верзијата:

    //////////////////////////////////////////////////// /////////////////////
    // Го менувам директориумот во Ubuntu 16.04 /////////////////////////
    //////////////////////////////////////////////////// /////////////////////
    vi/итн/mysql/mysql.conf.d/mysqld.cnf

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

    //////////////////////////////////////////////////// /////////////////////
    // Го менувам директориумот во стариот Ubuntu /////////////////////////
    //////////////////////////////////////////////////// /////////////////////

    vi/итн/mysql/my.cnf

    //////////////////////////////////////////////////// /////////////////////
    // додадете ја оваа линија под ознаката [mysqld] или [mysql] //
    // Потоа рестартирајте го серверот //
    //////////////////////////////////////////////////// /////////////////////
    макс_врски = 500

  5.   огорчен dijo

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