Cum se remediază eroarea MySQL: Prea multe conexiuni

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 😉


6 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   nex el a spus

    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.

    1.    KZKG ^ Gaara el a spus

      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 🙁

  2.   Saul el a spus

    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

  3.   Francisco el a spus

    Bună ziua, m-ați putea ajuta să introduc /etc/mysql/my.cfg?

    Am un VPS, dar nu pot intra cu PUTTY.

    Salutări.

  4.   momeală el a spus

    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

  5.   indignat el a spus

    Tutorialul de la zero nu vă spune niciodată cum să îl schimbați