Ievads MySQL kļūdā: pārāk daudz savienojumu
Kad jums ir ļoti pieprasīta tīmekļa lietojumprogramma (vietne, emuārs, forums utt.), Tas ir, apmeklē liels skaits lietotāju, tas nozīmē palielinātu servera patēriņu. Ja minētajā tīmekļa lietotnē tiek izmantota MySQL datu bāze, un vaicājumu ir patiešām daudz (sliktas tīmekļa programmēšanas dēļ vai daudzi lietotāji, kas izmanto tīmekli), pastāv iespēja, ka MySQL parādīs šo kļūdu:
mysqli_connect(): (HY000/1040): Too many connections
Ko nozīmē kļūda MySQL: pārāk daudz savienojumu?
Tas nozīmē, ka MySQL nāk pārāk daudz pieprasījumu, vairāk nekā tas spēj pieņemt, vairāk nekā tas var stāvēt rindā vai gaidīt.
Kā to atrisināt?
Vienkārši, mums jāpalielina MySQL atbalstīto pieprasījumu (savienojumu) maksimālais ierobežojums.
Es jums došu divas iespējas, kā novērst šo problēmu:
1. Mēs rediģējam failu /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
Tajā mēs ievietojam sekojošo, kur teikts [mysql]:
max_connections = 500 max_user_connections = 500
Tas palielinās maksimālo savienojumu skaitu no 100 (kas ir noklusējums) līdz 500.
Mēs saglabājam un izejam, pēc tam restartējam pakalpojumu MySQL, un viss. Šīs izmaiņas ir neatgriezeniskas.
2. Vēl viens veids, kā atrisināt šo problēmu, ir mainīt maksimālo robežu vienādi, bet izmantojot MySQL vaicājumu.
Vispirms parādīsim pašreizējo ierobežojumu:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
Tas mums parādīs kaut ko līdzīgu:
+ ----------------- + ------- + | Mainīgais_nosaukums | Vērtība | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
Citiem vārdiem sakot, pašreizējais ierobežojums ir 151 savienojums, labi, palielināsim to līdz 500, izmantojot vaicājumu:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
Gatavs!
Šādā veidā problēma ir tā, ka, restartējot pakalpojumu, šī konfigurācija tiek zaudēta.
Lai sniegtu šo informāciju, varat izveidot bash skriptu, kuru pārbauda katru X reizi, vai pat pievienot līniju dēmona sākuma vai restartēšanas blokam 😉
Bet kāpēc tad es gribu zināt šo 2. variantu? ... labi, to es mēdzu teikt. Bet pirms mēneša Ubuntu serveris ignorēja metodi Nr. 1, tāpēc ... ārkārtējos dumjš OS gadījumos mums ir šī 2. opcija, kas darbojas tikpat labi 😉
Labs ziņojums, MySql ... viņi daudz izmanto FreeBSD, ... .KZKG ^ Gaara?, ... Būtu labi, ja izveidotu ziņu par to, kā instalēt un konfigurēt MySql FreeBSD, piemēram: SSH (drošs - apvalks), SSH ( izmantojot Web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 un PhpSysInfo paplašinājumi.
Lai to izdarītu, man būtu jāinstalē FreeBSD, es nedomāju, ka man šobrīd ir laiks, es vienkārši mainīju darbu un man ir daudz jaunu pienākumu 🙁
Nesen man bija jādara kaut kas līdzīgs projektam ar nodejs. Manā gadījumā es palielinājos līdz 250, un man ar to pietika, pagaidām es daru labi. Paldies par informāciju
Sveiki, vai jūs varētu man palīdzēt ievadīt /etc/mysql/my.cfg?
Man ir VPS, bet es nevaru iekļūt ar PUTTY.
Sveicieni.
Lai atrisinātu 1. opcijas komentēto iespēju problēmu un saglabātu izmaiņas, restartējot serveri, fails ir jārediģē atbilstoši versijai:
////////////////////////////////////////////////////// // ////////////////////
// Es mainu direktoriju Ubuntu 16.04 //////////////////////////
////////////////////////////////////////////////////// // ////////////////////
Es redzēju /etc/mysql/mysql.conf.d/mysqld.cnf
////////////////////////////////////////////////////// // ////////////////////
// Es mainu direktoriju Ubuntu 15.04 //////////////////////////
////////////////////////////////////////////////////// // ////////////////////
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
////////////////////////////////////////////////////// // ////////////////////
// Es mainu direktoriju Ubuntu vecajā //////////////////////////
////////////////////////////////////////////////////// // ////////////////////
Es redzēju /etc/mysql/my.cnf
////////////////////////////////////////////////////// // ////////////////////
// pievienojiet šo rindiņu zem taga [mysqld] vai [mysql] //
// Pēc tam restartējiet serveri //
////////////////////////////////////////////////////// // ////////////////////
max_connections = 500
Apmācība no nulles nekad nenorāda, kā to mainīt