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 😉
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.
Za ovo bih morao instalirati FreeBSD, mislim da trenutno nemam vremena, samo sam promijenio posao i imam mnogo novih odgovornosti 🙁
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
Zdravo, možete li mi pomoći kako unijeti /etc/mysql/my.cfg?
Imam VPS, ali ne mogu ući s PUTTY.
Pozdrav.
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
Vodič od nule ni u jednom trenutku vam govori kako ga promijeniti