Увод у МиСКЛ грешку: Превише веза
Када имате веб апликацију (сајт, блог, форум итд.) која има велику потражњу, што значи да је посећује велики број корисника, то се претвара у повећану потрошњу ресурса сервера. Ако ова веб апликација користи MySQL базу података и упити су веома бројни ( због лошег програмирања веб странице или великог броја корисника ), MySQL може приказати ову грешку:
mysqli_connect(): (HY000/1040): Too many connections
Шта значи грешка МиСКЛ: Тоо Мани Цоннецтионс?
То значи да превише захтева долази на МиСКЛ, више него што може да прихвати, више него што може да стави у ред или чека.
Како то решити?
Једноставно, морамо повећати максимално ограничење захтева (веза) које МиСКЛ подржава.
Даћу вам две могућности да решите овај проблем:
1. Уређујемо датотеку /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
У њему стављамо следеће испод где пише [мискл]:
мак_цоннецтионс = 500 мак_усер_цоннецтионс = 500
Ово ће повећати максималан број веза са 100 (што је подразумевано) на 500.
Сачувамо и изађемо, затим поново покрећемо МиСКЛ услугу и то је то. Ова промена је трајна.
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;'
Спремни!
Проблем на овај начин је тај што се приликом поновног покретања услуге ова конфигурација губи.
Да бисте надокнадили овај детаљ, можете направити басх скрипту која проверава сваки Кс временски период, или чак додати линију у стартни или рестартовати блок демона
Али зашто онда желим да знам ову другу опцију? … па, то сам рекао. Али пре месец дана Убунту сервер је игнорисао метод бр.2, тако да... у екстремним случајевима глупог ОС-а, имамо ову другу опцију која функционише једнако добро