Индекс
Вовед во грешката 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 коментари, оставете ги вашите
Добар пост, MySql… тие користат многу во FreeBSD,… .KZKG ^ Gaara?,… Би било добро ако објавите порака, за тоа како да инсталирате и конфигурирате MySql во FreeBSD како: SSH (безбедна школка), SSH (преку веб), SFTP (SSH-протокол за пренос на датотеки), Apache - PHP- MySql, PHP5 и PhpSysInfo екстензии.
За ова ќе морав да инсталирам FreeBSD, мислам дека немам време во моментов, јас само ги сменив работните места и имам многу нови одговорности
Неодамна морав да направам нешто слично за проект со nodejs. Во мојот случај се зголеми на 250 и тоа беше доволно, за сега добро се снаоѓам. Ви благодариме за информацијата
Здраво, дали може да ми помогнете како да внесам /etc/mysql/my.cfg?
Имам VPS, но не можам да влезам со PUTTY.
Поздрав.
За да го решите проблемот со опцијата 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
Упатството од нула во ниту еден момент не ви кажува како да го промените