Monday, July 23, 2012

"max_user_connection" mysql error-ийг арилгах, багасгах

       
           Бид вэб сайт ажиллуулж байхад "max_user_connection" гэсэн mysql-ийн алдаа /error/ заадаг. Энэ алдаа нь mysql өгөгдлийн санд /database/ нэг зэрэг хандах хэрэглэгчдийн тоо хэтэрсний улмаас үүсдэг. Тэгвэл энэ алдааг хэрхэн алга болгох /багасгах, арилгах/ талаар өөрийн судалсан жаахан зүйлээ бичлээ. Дараах зүйлд анхаарлаа хандуулна уу.

  1. Apache вэб сервер дээр нэг зэрэг холбогдох хэрэглэгчдийн тоог өөрчлөх /ихэсгэх/. php.ini файл дотроос  max_user_connection-ийн ард байгаа тоог ихэсгэх
  2. mysql өгөгдлийн сан руу хандах хэд хэдэн хэрэглэгч үүсгэх. Өгөгдлийн сангийн холболт үүсгэхдээ database user-ээ санамсаргүйгээр /random/ сонгож холбогдох. Жишээ нь: 
  3. mysql_connect('localhost', 'database_user'.rand(1, 10), 'database_password');   
  4. Дараагийн арга бол вэб сайтдаа кэйш /cache/ тавих /хийх/. Энэ арга нь миний бодлоор хамгийн дажгүй арга. 2-р аргатай хослуулбал бүр тасархай болох байх. Кейш нь хэрэглэгч эхний удаад өгөгдөлд хандахад статик өгөгдөл үүсгээд (жишээ нь статик HTML файл үүсгэх), өгөгдөлд өөрчлөлт орох үед update хийгдэнэ. Миний судалснаар 2 төрлийн кэйш байна. Үүнд: Өгөгдлийн сангийн кэйш /mysql cache/ болон програмын кодоор /жишээ нь кэйшлэдэг алгоритмыг програмын кодондоо нэмэх эсвэл бичих/ кэйшлэх. Кэйшлэх хугацааны хувьд 2 төрлийн арга байдаг. Эхнийх нь өгөгдөлд /өгөгдлийн санд/ өөрчлөлт орох үед дараах арга нь тодорхой хугацааны дараа дахин cahce-лэх. Cache-ийн бас нэг давуу тал нь вэб сайтыг хурдан ачаалдаг болгодог. Өөрөөр хэлбэл хоёрдох удаагаа өгөгдөлд хандахад статик зүйл /хуудас/ үзүүлэх учир.
За ингээд боллоо. Миний cache-ийн талаар судалсан зүйл одоогоор иймэрхүү байна. Би 2, 3 дахь аргыг хэрэглэж байгаа ба үр дүнгээ маш сайн өгч байгаа. Эхний аргыг ашиглаж болохгүй байгаа нь гадаадын хостд дээр вэбээ байрлуулсан учраас.

Уншигч та дээрх аргуудаас илүү үр дүнтэй сайн аргууд байвал хуваалцаарай.

Good luck!

1 comment: