Introducere în eroarea MySQL: Prea multe conexiuni
Când aveți o aplicație web (site, blog, forum etc.) care este foarte solicitată, adică pe care o vizitează un număr mare de utilizatori, acest lucru se traduce printr-un consum crescut pe server. Dacă respectiva aplicație web utilizează o bază de date MySQL și interogările sunt foarte multe (din cauza programării proaste a web-ului sau de către mulți utilizatori care folosesc web-ul), există posibilitatea ca MySQL să afișeze această eroare:
mysqli_connect(): (HY000/1040): Too many connections
Ce înseamnă eroarea MySQL: Prea multe conexiuni?
Înseamnă că prea multe solicitări vin la MySQL, mai mult decât poate accepta, mai mult decât poate face coadă sau aștepta.
Cum să o rezolvi?
Simplu, trebuie să creștem limita maximă de cereri (conexiuni) acceptate de MySQL.
Vă voi oferi două opțiuni pentru a remedia această problemă:
1. Edităm fișierul /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
În el, punem următoarele sub unde scrie [mysql]:
max_connections = 500 max_user_connections = 500
Aceasta va crește numărul maxim de conexiuni de la 100 (care este implicit) la 500.
Salvăm și ieșim, apoi repornim serviciul MySQL și gata. Această schimbare este permanentă.
2. O altă modalitate de a rezolva această problemă este schimbarea limitei maxime egale, dar printr-o interogare MySQL.
Să arătăm mai întâi limita actuală:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
Acest lucru ne va arăta așa ceva:
+ ----------------- + ------- + | Numele_variabil | Valoare | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
Cu alte cuvinte, limita actuală este de 151 conexiuni, ei bine, hai să o ridicăm la 500 printr-o interogare:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
Gata!
Problema în acest fel este că atunci când serviciul este repornit, această configurație se pierde.
Pentru a furniza acest detaliu, puteți crea un script bash care verifică de fiecare dată X sau chiar puteți adăuga linia la blocul de pornire sau repornire a demonului 😉
Dar atunci de ce vreau să știu această a doua opțiune? ... ei bine, asta spuneam. Dar acum o lună, un server Ubuntu a ignorat metoda nr. 2, așa că ... în cazuri extreme de SO prostie, avem această a doua opțiune care funcționează la fel de bine 😉
Post bun, MySql ... ei folosesc mult în FreeBSD, ... .KZKG ^ Gaara?, ... Ar fi bine dacă faceți o postare, despre cum să instalați și să configurați MySql în FreeBSD cum ar fi: SSH (securizat - shell), SSH (prin Web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 și Extensii PhpSysInfo.
Pentru aceasta ar trebui să instalez FreeBSD, nu cred că am timp chiar acum, doar că am schimbat locul de muncă și am multe responsabilități noi 🙁
Recent, a trebuit să fac ceva similar pentru un proiect cu nodejs. În cazul meu a crescut la 250 și a fost suficient, deocamdată merg bine. Mulțumesc de informație
Bună ziua, m-ați putea ajuta să introduc /etc/mysql/my.cfg?
Am un VPS, dar nu pot intra cu PUTTY.
Salutări.
Pentru a rezolva problema Opțiunii 1.- Opțiunea comentată și păstrarea modificărilor la repornirea serverului, fișierul trebuie editat conform versiunii:
////////////////////////////////////////////////// ////////////////////
// Schimb directorul în Ubuntu 16.04 //////////////////////////
////////////////////////////////////////////////// ////////////////////
Am văzut /etc/mysql/mysql.conf.d/mysqld.cnf
////////////////////////////////////////////////// ////////////////////
// Schimb directorul în Ubuntu 15.04 //////////////////////////
////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
////////////////////////////////////////////////// ////////////////////
// Schimb directorul în Ubuntu vechi //////////////////////////
////////////////////////////////////////////////// ////////////////////
Am văzut /etc/mysql/my.cnf
////////////////////////////////////////////////// ////////////////////
// adăugați această linie sub eticheta [mysqld] sau [mysql] //
// Apoi reporniți serverul //
////////////////////////////////////////////////// ////////////////////
max_connections = 500
Tutorialul de la zero nu vă spune niciodată cum să îl schimbați