Panimula sa error sa MySQL: Napakaraming Koneksyon
Kapag mayroon kang isang web application (site, blog, forum, atbp.) Na mataas ang demand, iyon ay, isang malaking bilang ng mga gumagamit na bumibisita, isasalin ito sa tumaas na pagkonsumo sa server. Kung sinabi na ang web app ay gumagamit ng isang MySQL database at ang mga query ay talagang marami (dahil sa hindi magandang programa ng web o ng maraming mga gumagamit na gumagamit ng web), may posibilidad na ipapakita ng MySQL ang error na ito:
mysqli_connect(): (HY000/1040): Too many connections
Ano ang ibig sabihin ng error sa MySQL: Masyadong Maraming Koneksyon?
Nangangahulugan ito na masyadong maraming mga kahilingan ang darating sa MySQL, higit sa maaari nitong tanggapin, higit sa maaari itong pumila o maghintay.
Paano ito malulutas?
Simple, dapat nating taasan ang maximum na limitasyon ng mga kahilingan (koneksyon) na sinusuportahan ng MySQL.
Bibigyan kita ng dalawang mga pagpipilian upang ayusin ang problemang ito:
1. Ina-edit namin ang file /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
Sa loob nito inilalagay namin ang mga sumusunod sa ilalim ng kung saan sinasabi nito [MySQL]:
max_connections = 500 max_user_connections = 500
Dadagdagan nito ang maximum na bilang ng mga koneksyon mula sa 100 (na kung saan ay ang default) sa 500.
Nagse-save at lumabas kami, pagkatapos ay i-restart namin ang serbisyo ng MySQL at iyon lang. Permanente ang pagbabagong ito.
2. Ang isa pang paraan upang malutas ang problemang ito ay baguhin ang maximum na maximum na limitasyon, ngunit sa pamamagitan ng isang query sa MySQL.
Ipakita muna natin ang kasalukuyang limitasyon:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
Ipapakita nito sa amin ang isang bagay tulad nito:
+ ----------------- + ------- + | Variable_name | Halaga | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
Sa madaling salita, ang kasalukuyang limitasyon ay 151 mga koneksyon, aba, itaas natin ito sa 500 sa pamamagitan ng isang query:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
Handa!
Ang problema sa ganitong paraan ay kapag nai-restart ang serbisyo, nawala ang pagsasaayos na ito.
Upang maibigay ang detalyeng ito, maaari kang gumawa ng isang bash script na bawat oras na napatunayan ng X, o idagdag pa ang linya sa pagsisimula o pag-restart ng bloke ng daemon 😉
Ngunit bakit gusto kong malaman ang ika-2 pagpipiliang ito? ... well, yan ang sinasabi ko dati. Ngunit isang buwan na ang nakalilipas ang isang Ubuntu Server ay hindi pinansin ang pamamaraan No.1, kaya ... sa matinding mga kaso ng ulok na OS mayroon kaming ika-2 na pagpipilian na ito ay gumagana rin
Magandang post, MySql… marami silang ginagamit sa FreeBSD,… .KZKG ^ Gaara?,… Mabuti kung gumawa ka ng isang post, kung paano i-install at i-configure ang MySql sa FreeBSD tulad ng: SSH (secure - shell), SSH (sa pamamagitan ng Web), SFTP (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 at PhpSysInfo Extensions.
Para sa mga ito nais kong mai-install ang FreeBSD, sa palagay ko wala akong oras sa ngayon, nagbago lang ako ng trabaho at marami akong mga bagong responsibilidad 🙁
Kamakailan lamang ay kailangan kong gumawa ng katulad na bagay para sa isang proyekto na may mga nodejs. Sa aking kaso tumaas ito sa 250 at sapat na iyon, sa ngayon ay mabuti pa ako. Salamat sa impormasyon
Kumusta, maaari mo ba akong tulungan kung paano ipasok ang /etc/mysql/my.cfg?
Mayroon akong VPS, ngunit hindi ako makakasama sa PUTTY.
Pagbati.
Upang malutas ang problema ng Opsyon 1.- Opsyon na may puna, at panatilihin ang mga pagbabago kapag i-restart ang server, dapat na mai-edit ang file ayon sa bersyon:
// ///. ///. // ///. // ///.
// Binago ko ang direktoryo sa Ubuntu 16.04 // ///. ///.
// ///. ///. // ///. // ///.
vi /etc/mysql/mysql.conf.d/mysqld.cnf
// ///. ///. // ///. // ///.
// Binago ko ang direktoryo sa Ubuntu 15.04 // ///. ///.
// ///. ///. // ///. // ///.
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
// ///. ///. // ///. // ///.
// Binago ko ang direktoryo sa Ubuntu luma // ///.
// ///. ///. // ///. // ///.
Nakita ko ang /etc/mysql/my.cnf
// ///. ///. // ///. // ///.
// idagdag ang linyang ito sa ilalim ng [MySQL] o [MySQL] na tag //
// Pagkatapos ay i-restart ang server //
// ///. ///. // ///. // ///.
max_connections = 500
Ang zero tutorial nang walang oras ay nagsasabi sa iyo kung paano ito baguhin