Kako ispraviti grešku MySQL: Previše veza

Uvod u MySQL grešku: Previše veza

Kada imate web aplikaciju (web lokaciju, blog, forum itd.) Koja je vrlo tražena, odnosno koju posjećuje veliki broj korisnika, to se pretvara u povećanu potrošnju na serveru. Ako navedena web aplikacija koristi MySQL bazu podataka, a upita je zaista mnogo (zbog lošeg programiranja weba ili mnogih korisnika koji ga koriste), postoji mogućnost da MySQL prikaže ovu grešku:

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

Šta znači greška MySQL: Previše veza?

To znači da previše zahtjeva dolazi na MySQL, više nego što može prihvatiti, više nego što može staviti u red ili čekati.

Kako to riješiti?

Jednostavno, moramo povećati maksimalno ograničenje zahtjeva (veza) koje MySQL podržava.

Dat ću vam dvije mogućnosti da riješite ovaj problem:

1. Uređujemo datoteku /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

U nju stavljamo sljedeće ispod gdje piše [mysql]:

max_connections = 500 max_user_connections = 500

To će povećati maksimalni broj veza sa 100 (što je zadana vrijednost) na 500.

Spremimo i izađemo, zatim ponovo pokrećemo MySQL uslugu i to je to. Ova promjena je trajna.

2. Drugi način rješavanja ovog problema je promjena maksimalnog ograničenja jednakog, ali putem MySQL upita.

Pokažimo prvo trenutno ograničenje:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Ovo će nam pokazati otprilike ovako:

+ ----------------- + ------- + | Variable_name | Vrijednost | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Drugim riječima, trenutno ograničenje je 151 konekcija, pa, podignimo ga na 500 pomoću upita:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Spremni!

Problem na ovaj način je taj što se prilikom ponovnog pokretanja usluge ova konfiguracija gubi.

Da biste pružili ovaj detalj, možete napraviti bash skriptu koja provjerava svaki X put ili čak dodati redak u blok pokretanja ili ponovnog pokretanja demona

Ali zašto onda želim znati ovu drugu opciju? ... pa, to sam znao reći. Ali prije mjesec dana Ubuntu Server ignorirao je metodu br. 2, pa ... u ekstremnim slučajevima glupih OS-a imamo ovu drugu opciju koja radi jednako dobro 😉


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   sljedeći rekao je

    Dobar post, MySql ... puno koriste u FreeBSD-u, ... .KZKG ^ Gaara?, ... Bilo bi dobro da napravite post o tome kako instalirati i konfigurirati MySql u FreeBSD-u poput: SSH (sigurno - ljuska), SSH (putem weba), SFTP (SSH-File Transfer Protocol), Apache - PHP-MySql, PHP5 i PhpSysInfo proširenja.

    1.    KZKG ^ Gaara rekao je

      Za ovo bih morao instalirati FreeBSD, mislim da trenutno nemam vremena, samo sam promijenio posao i imam mnogo novih odgovornosti 🙁

  2.   Saul rekao je

    Nedavno sam morao učiniti nešto slično za projekat sa nodejsom. U mom slučaju se povećao na 250 i to je bilo dovoljno, za sada mi ide dobro. Hvala na informacijama

  3.   Francisco rekao je

    Zdravo, možete li mi pomoći kako unijeti /etc/mysql/my.cfg?

    Imam VPS, ali ne mogu ući s PUTTY.

    Pozdrav.

  4.   mamac rekao je

    Da biste riješili problem opcije 1. - Komentirana opcija i zadržale promjene prilikom ponovnog pokretanja poslužitelja, datoteka mora biti uređena prema verziji:

    //////////////////////////////////////////////////////// ////////////////////
    // Mijenjam direktorij u Ubuntuu 16.04 //////////////////////////
    //////////////////////////////////////////////////////// ////////////////////
    Vidio sam /etc/mysql/mysql.conf.d/mysqld.cnf

    //////////////////////////////////////////////////////// ////////////////////
    // Mijenjam direktorij u Ubuntuu 15.04 //////////////////////////
    //////////////////////////////////////////////////////// ////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    //////////////////////////////////////////////////////// ////////////////////
    // Mijenjam direktorij u starom Ubuntuu //////////////////////////
    //////////////////////////////////////////////////////// ////////////////////

    Video sam /etc/mysql/my.cnf

    //////////////////////////////////////////////////////// ////////////////////
    // dodamo ovaj red ispod oznake [mysqld] ili [mysql] //
    // Zatim ponovo pokrenite poslužitelj //
    //////////////////////////////////////////////////////// ////////////////////
    max_povezivanja = 500

  5.   ogorčena rekao je

    Vodič od nule ni u jednom trenutku vam govori kako ga promijeniti