វិធីដោះស្រាយបញ្ហា MySQL៖ ការតភ្ជាប់ច្រើនពេក

សេចក្តីផ្តើមអំពីកំហុស MySQL៖ ការតភ្ជាប់ច្រើនពេក

នៅពេលអ្នកមានកម្មវិធីគេហទំព័រ (គេហទំព័រប្លុកវេទិកា។ ល។ ) ដែលមានតំរូវការខ្ពស់នោះគឺថាមានអ្នកប្រើប្រាស់មួយចំនួនធំបានចូលទស្សនាវាប្រែទៅជាការប្រើប្រាស់កើនឡើងនៅលើម៉ាស៊ីនមេ។ ប្រសិនបើកម្មវិធីបណ្តាញបានប្រើមូលដ្ឋានទិន្នន័យ MySQL ហើយសំណួរគឺពិតជាមានច្រើន (ដោយសារតែកម្មវិធីមិនល្អរបស់គេហទំព័រឬដោយអ្នកប្រើប្រាស់ជាច្រើនកំពុងប្រើគេហទំព័រ), មានលទ្ធភាពមួយដែលកម្មវិធី MySQL នឹងបង្ហាញកំហុសនេះ:

mysqli_connect(): (HY000/1040): Too many connections

តើកម្មវិធី MySQL៖ កំហុសក្នុងការតភ្ជាប់ច្រើនមានន័យដូចម្តេច?

វាមានន័យថាមានសំណើរច្រើនពេកដែលចូលក្នុង MySQL ច្រើនជាងអ្វីដែលវាអាចទទួលយកបានច្រើនជាងអ្វីដែលវាអាចដាក់ជាជួររឺរង់ចាំ។

តើត្រូវដោះស្រាយវាយ៉ាងដូចម្តេច?

សាមញ្ញយើងត្រូវតែបង្កើនដែនកំណត់អតិបរមានៃសំណើ (ការតភ្ជាប់) ដែល MySQL គាំទ្រ។

ខ្ញុំនឹងផ្តល់ឱ្យអ្នកនូវជម្រើសពីរដើម្បីដោះស្រាយបញ្ហានេះ:

1. យើងកែសម្រួលឯកសារ /etc/mysql/my.cfg៖

nano /etc/mysql/my.cfg

នៅក្នុងវាយើងដាក់នៅខាងក្រោមកន្លែងដែលវានិយាយថា [mysql]៖

max_connections = ៥០០ max_user_connections = ៥០០

នេះនឹងបង្កើនចំនួនអតិបរមានៃការតភ្ជាប់ពី ១០០ (ដែលជាលំនាំដើម) ដល់ ៥០០ ។

យើងរក្សាទុកនិងចាកចេញបន្ទាប់មកយើងចាប់ផ្តើមសេវាកម្ម MySQL ឡើងវិញហើយនោះជាវា។ ការផ្លាស់ប្តូរនេះគឺមានជាអចិន្ត្រៃយ៍។

2. វិធីមួយទៀតដើម្បីដោះស្រាយបញ្ហានេះគឺការផ្លាស់ប្តូរដែនកំណត់អតិបរិមាស្មើគ្នាប៉ុន្តែតាមរយៈសំណួរ MySQL ។

ដំបូងយើងបង្ហាញពីដែនកំណត់បច្ចុប្បន្ន៖

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

នេះនឹងបង្ហាញយើងនូវអ្វីដូចនេះ:

+ ----------------- + ------- + | អថេរ _ ឈ្មោះ | តម្លៃ | + ----------------- + ------- + | ការតភ្ជាប់អតិបរិមា | ១៥១ | + ----------------- + ------- +

និយាយម៉្យាងទៀតដែនកំណត់បច្ចុប្បន្នគឺ ១៥១ ការតភ្ជាប់សូមលើកវាឡើងដល់ ៥០០ តាមមធ្យោបាយសំណួរ៖

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

ត្រៀមខ្លួនហើយ!

បញ្ហាតាមរបៀបនេះគឺនៅពេលដែលសេវាកម្មត្រូវបានចាប់ផ្តើមឡើងវិញការកំណត់រចនាសម្ព័ន្ធនេះត្រូវបានបាត់បង់។

ដើម្បីផ្គត់ផ្គង់ព័ត៌មានលម្អិតនេះអ្នកអាចបង្កើតស្គ្រីបប៊្លុកដែលរាល់ពេល X ផ្ទៀងផ្ទាត់ឬបន្ថែមបន្ទាត់ទៅដើមឬចាប់ផ្ដើមប្លុកដេមិន។ 😉

ប៉ុន្តែហេតុអ្វីបានជាខ្ញុំចង់ដឹងពីជម្រើសទី ២ នេះ? ... មែនហើយនោះហើយជាអ្វីដែលខ្ញុំធ្លាប់និយាយ។ ប៉ុន្តែកាលពីមួយខែមុនប្រព័ន្ធអ៊ូប៊ុនទូមិនអើពើនឹងវិធីសាស្ត្រលេខ ១ ដូច្នេះ ... ក្នុងករណីធ្ងន់ធ្ងរនៃប្រព័ន្ធប្រតិបត្តិការល្អយើងមានជំរើសទី ២ នេះដែលដំណើរការល្អផងដែរ😉


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

៥៧ យោបល់ទុកអ្នក

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។

  1.   ណិច dijo

    ប៉ុស្តិ៍ល្អ MySql …ពួកគេប្រើច្រើននៅក្នុង FreeBSD, … .KZKG ^ Gaara?, …វាជាការប្រសើរប្រសិនបើអ្នកធ្វើការប្រកាសអំពីវិធីតំឡើងនិងតំឡើង MySql នៅក្នុង FreeBSD ដូចជា៖ អេសអេសអេស (សុវត្ថភាព - សែល) អេសអេសអេស ( តាមរយៈគេហទំព័រ) SFTP (ពិធីសារផ្ទេរឯកសារអេអេសអេសអេសអេសអេស - អេហ្វអេស - ប្លូអេហ្វអេហ្វអេសអេហ្វអេស ៥ និងភីភីអេស។

    1.    KZKG ^ ហ្គារ៉ា dijo

      ដើម្បីធ្វើដូចនេះខ្ញុំនឹងត្រូវដំឡើង FreeBSD ខ្ញុំមិនគិតថាខ្ញុំមានពេលឥឡូវនេះទេខ្ញុំទើបតែផ្លាស់ប្តូរការងារហើយខ្ញុំមានទំនួលខុសត្រូវថ្មីជាច្រើន។

  2.   សូល dijo

    ថ្មីៗនេះខ្ញុំត្រូវធ្វើអ្វីដែលស្រដៀងគ្នាសម្រាប់គម្រោងជាមួយងក់ក្បាល។ ក្នុងករណីរបស់ខ្ញុំវាបានកើនឡើងដល់ 250 ហើយវាគ្រប់គ្រាន់ហើយសម្រាប់ពេលនេះខ្ញុំធ្វើបានល្អ។ អរគុណ​សម្រាប់​ព័ត៌មាន

  3.   ហ្វ្រាន់ស៊ីស្កូ dijo

    សួស្តីតើអ្នកអាចជួយខ្ញុំពីរបៀបបញ្ចូល /etc/mysql/my.cfg បានទេ?

    ខ្ញុំមាន VPS មួយប៉ុន្តែខ្ញុំមិនអាចចូលជាមួយភីធីធីបានទេ។

    ស្វាគមន៍។

  4.   នុយ dijo

    ដើម្បីដោះស្រាយបញ្ហានៃជម្រើសទី ១.- ជម្រើសដែលបានផ្តល់យោបល់និងរក្សាការផ្លាស់ប្តូរនៅពេលចាប់ផ្តើមម៉ាស៊ីនមេឡើងវិញឯកសារត្រូវតែត្រូវបានកែសម្រួលយោងទៅតាមកំណែ៖

    / ///////////////////////////// ////////////////////////////
    // ខ្ញុំផ្លាស់ប្តូរថតឯកសារនៅក្នុងអ៊ូប៊ុនទូ ១៦.០៤ //////////////////////////
    / ///////////////////////////// ////////////////////////////
    ខ្ញុំបានឃើញ /etc/mysql/mysql.conf.d/mysqld.cnf

    / ///////////////////////////// ////////////////////////////
    // ខ្ញុំផ្លាស់ប្តូរថតឯកសារនៅក្នុងអ៊ូប៊ុនទូ ១៦.០៤ //////////////////////////
    / ///////////////////////////// ////////////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    / ///////////////////////////// ////////////////////////////
    // ខ្ញុំផ្លាស់ប្តូរថតឯកសារនៅក្នុងអ៊ូប៊ុនទូចាស់ ////////////////////////////
    / ///////////////////////////// ////////////////////////////

    ខ្ញុំបានឃើញ /etc/mysql/my.cnf

    / ///////////////////////////// ////////////////////////////
    // បន្ថែមបន្ទាត់នេះក្រោមស្លាក [mysqld] ឬ [mysql] //
    // បន្ទាប់មកចាប់ផ្តើមម៉ាស៊ីនមេឡើងវិញ //
    / ///////////////////////////// ////////////////////////////
    ការតភ្ជាប់អតិបរមា = ៥០០

  5.   ខឹង dijo

    ការបង្រៀនពីទទេនៅពេលគ្មានពេលវេលាប្រាប់អ្នកពីរបៀបផ្លាស់ប្តូរវា