အညွှန်းကိန်း
MySQL အမှားမိတ်ဆက် - အလွန်များလွန်းသောဆက်သွယ်မှုများ
သင့်အနေဖြင့် ၀ ယ်လိုအားအလွန်များပြားသောဝက်ဘ် application တစ်ခု (site, blog, forum, etc) ရှိလျှင်အသုံးပြုသူအမြောက်အများလာရောက်လည်ပတ်သောအခါ၎င်းသည်ဆာဗာတွင်သုံးစွဲမှုတိုးလာသည်။ အကယ်၍ ထို web app သည် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသည်ဆိုလျှင်၎င်းသည်အလွန်များပြားသည် (ဝဘ်ကိုမကောင်းတဲ့ပရိုဂရမ်ရေးသားခြင်းသို့မဟုတ်ဝက်ဘ်ကိုအသုံးပြုသောသုံးစွဲသူများစွာကြောင့်ဖြစ်သည်), MySQL ကဒီအမှားကိုပြသနိုင်တဲ့ဖြစ်နိုင်ချေရှိတယ် -
mysqli_connect(): (HY000/1040): Too many connections
MySQL: ဆက်သွယ်မှုအလွန်များလွန်းသောအမှားကဘာကိုဆိုလိုသနည်း။
ဆိုလိုသည်မှာတောင်းဆိုမှုများသည် MySQL သို့လာသည်၊ လက်ခံနိုင်သည်ထက်ပိုသည်၊ စောင့်ဆိုင်းနိုင်သည်သို့မဟုတ်စောင့်နိုင်သည်။
ဘယ်လိုဖြေရှင်းမလဲ
ရိုးရိုးရှင်းရှင်းပြောရလျှင် MySQL မှတောင်းဆိုမှုများ (ဆက်သွယ်မှုများ) အမြင့်ဆုံးသတ်မှတ်ချက်ကိုတိုးမြှင့်ရမည်။
ဤပြfixနာကိုဖြေရှင်းရန်သင့်အားနည်းလမ်းနှစ်ခုပေးပါမည်။
1. /etc/mysql/my.cfg ဖိုင်ကိုကျွန်ုပ်တို့တည်းဖြတ်သည်။
nano /etc/mysql/my.cfg
၎င်းတွင် [mysql] ကဖော်ပြထားသောနေရာတွင်အောက်ပါကိုထည့်ပါ။
max_connections = 500 max_user_connections = 500
၎င်းသည်အများဆုံးဆက်သွယ်မှု ၁၀၀ မှ (ပုံမှန်အားဖြင့်) ၅၀၀ အထိတိုးပွားလိမ့်မည်။
ကျွန်ုပ်တို့သည်သိမ်းဆည်းပြီးထွက်ပြီးနောက် MySQL ၀ န်ဆောင်မှုကိုပြန်လည်စတင်သည်။ ဒီပြောင်းလဲမှုကအမြဲတမ်းဖြစ်ပါတယ်
2. ဤပြproblemနာကိုဖြေရှင်းနိုင်သည့်နောက်တစ်နည်းမှာအမြင့်ဆုံးကန့်သတ်ချက်ကိုပြောင်းလဲရန်ဖြစ်သည်၊ သို့သော် MySQL query ဖြင့်ပြောင်းလဲနိုင်သည်။
ပထမကန့်သတ်ချက်ကိုအရင်ပြပါရစေ။
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
ဒါကငါတို့ကိုဒီလိုမျိုးပြသလိမ့်မယ် -
+ ----------------- + ------- + | Variable_name | တန်ဖိုး + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
တစ်နည်းပြောရလျှင်လက်ရှိအကန့်အသတ်မှာဆက်သွယ်မှု ၁၅၁ ဖြစ်သည်။ စုံစမ်းမှုအားဖြင့်၎င်းကို 151 သို့မြှောက်ပါ။
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
အဆင်သင့်!
ဤနည်းအားဖြင့်ပြproblemနာက ၀ န်ဆောင်မှုကိုပြန်လည်စတင်သောအခါ၊ ဒီဖွဲ့စည်းပုံပျောက်ဆုံးသွားခြင်းဖြစ်သည်။
ဒီအသေးစိတ်အချက်အလက်ကိုပေးဖို့၊ X အချိန်တိုင်းကိုစစ်ဆေးတဲ့ bash script ကိုလုပ်နိုင်ပါတယ်။ ဒါမှမဟုတ် daemon ရဲ့ start သို့မဟုတ် restart block ကိုမျဉ်းကြောင်းထပ်ထည့်နိုင်တယ်။ 😉
ထိုအခါမူကားအဘယ်ကြောင့်ငါဒီဒုတိယ option ကိုသိရန်လိုသနည်း ... ကောင်းပြီ၊ ငါပြောခဲ့တယျ။ သို့သော်လွန်ခဲ့သောတစ်လခန့်က Ubuntu ဆာဗာသည် No.2 ကိုလျစ်လျူရှုခဲ့သည်။ ထို့ကြောင့်အစွန်းရောက်သော OS များတွင်အလွန်ကောင်းမွန်သောဤဒုတိယရွေးစရာရှိသည်။
6 မှတ်ချက်များ, သင့်စွန့်ခွာ
ကောင်းသောပို့စ်၊ MySql … FreeBSD၊ … .KZKG ^ Gaara တွင်သူတို့များစွာအသုံးပြုသည်။ အကယ်၍ သင်ပို့စ်တစ်ခုပြုလုပ်ပါက MySql ကို FreeBSD တွင် SSH (secure-shell)၊ SSH (Web မှတဆင့်)၊ SFTP ကဲ့သို့မည်သို့တပ်ဆင်ရမည်၊ (SSH-File Transfer Protocol), Apache - PHP- MySql, PHP5 နှင့် PhpSysInfo တိုးချဲ့မှုများ။
ဤအတွက်ကျွန်ုပ်သည် FreeBSD ကိုတပ်ဆင်ရလိမ့်မည်၊ ကျွန်ုပ်သည်ကျွန်ုပ်တွင်အချိန်မရှိသေးပါ၊ ကျွန်ုပ်အလုပ်ပြောင်းရုံနှင့်တာ ၀ န်အသစ်များရှိသည်။
ငါမကြာသေးမီက nodejs နှင့်အတူစီမံကိန်းအတွက်အလားတူတစ်ခုခုလုပ်ဖို့ရှိခဲ့ပါတယ်။ ကျွန်တော့်ကိစ္စမှာ ၂၅၀ အထိတိုးလာတယ်၊ ဒါကလုံလောက်တယ်၊ အခုငါကောင်းကောင်းလုပ်နေတယ်။ သတင်းအချက်အလက်အတွက်ကျေးဇူးတင်ပါတယ်
မင်္ဂလာပါ၊ /etc/mysql/my.cfg ကိုမည်သို့ဝင်ရောက်ရမည်နည်း။
ငါ့မှာ VPS ရှိတယ်၊ ဒါပေမယ့် PUTTY နဲ့မဆက်သွယ်နိုင်ဘူး။
မေတ္တာနှင့်ကြားလိုက်ပါ၏။
Option ၁ ၏ပြproblemနာကိုဖြေရှင်းရန်ဆာဗာကိုပြန်လည်စတင်သည့်အခါပြောင်းလဲမှုများကိုဆက်လက်ထားရှိရန်၊ ဗားရှင်းအရတည်းဖြတ်ရမည်။
/////////////////////////////////////////////////////// ////////////////////
// Ubuntu တွင် Directory ကိုငါပြောင်းလိုက်သည်။ 16.04 ////////////////////////
/////////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/mysql.conf.d/mysqld.cnf
/////////////////////////////////////////////////////// ////////////////////
// Ubuntu တွင် Directory ကိုငါပြောင်းလိုက်သည်။ 15.04 ////////////////////////
/////////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/mariadb.conf.d/mysqld.cnf
/////////////////////////////////////////////////////// ////////////////////
// Ubuntu အဟောင်း၌ရှိသော directory ကိုငါပြောင်းသည်။ ////////////////////////
/////////////////////////////////////////////////////// ////////////////////
vi /etc/mysql/my.cnf
/////////////////////////////////////////////////////// ////////////////////
// ဒီမျဉ်းကို [mysqld] or [mysql] tag အောက်မှာထည့်ပါ။
// ထို့နောက်ဆာဗာကိုပြန်လည်စတင်ရန် //
/////////////////////////////////////////////////////// ////////////////////
max_connections = ၅၀၀
ဘယ်အချိန်မှာမှသင်ခန်းစာသင်ကဘယ်လိုပြောင်းလဲပစ်ရန်သင့်အားပြောပြသည်