როგორ გამოვასწოროთ 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 = 500 max_user_connections = 500

ეს გაზრდის კავშირების მაქსიმალურ რაოდენობას 100 – დან (რაც ნაგულისხმევია) 500 – მდე.

ჩვენ ვინახავთ და გამოვდივართ, შემდეგ ჩვენ ვტვირთავთ MySQL სერვისს და ეს არის ყველაფერი. ეს ცვლილება მუდმივია.

2. ამ პრობლემის გადაჭრის კიდევ ერთი გზაა მაქსიმალური ლიმიტის შეცვლა ტოლი, მაგრამ MySQL მოთხოვნის საშუალებით.

პირველ რიგში ვაჩვენოთ მიმდინარე ლიმიტი:

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

ეს დაგვანახვებს მსგავს რამეს:

+ ----------------- + ------- + | ცვლადი_ სახელი | მნიშვნელობა | + ----------------- + ------- + | მაქს_კავშირები | 151 | + ----------------- + ------- +

სხვა სიტყვებით რომ ვთქვათ, ამჟამინდელი ლიმიტი არის 151 კავშირი, მოდით, მოდით გავზარდოთ იგი 500-მდე შეკითხვის საშუალებით:

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

მზად არის!

ამ გზით პრობლემა ის არის, რომ სერვისის გადატვირთვისას, ეს კონფიგურაცია იკარგება.

ამ დეტალების მისაღებად შეგიძლიათ გააკეთოთ bash სკრიპტი, რომელსაც X დრო ამოწმებს, ან თუნდაც დაამატოთ სტრიქონი daemon- ის საწყისი ან გადატვირთული ბლოკის

მაგრამ მაშინ რატომ მინდა ვიცოდე ეს მე -2 ვარიანტი? ... კარგი, ასე ვამბობდი. მაგრამ ერთი თვის წინ Ubuntu სერვერმა უგულებელყო No.1 მეთოდი, ამიტომ ... სულელური ოპერაციის უკიდურეს შემთხვევაში, ჩვენ გვაქვს მე -2 ვარიანტი, რომელიც მუშაობს ისევე კარგად


სტატიის შინაარსი იცავს ჩვენს პრინციპებს სარედაქციო ეთიკა. შეცდომის შესატყობინებლად დააჭირეთ ღილაკს აქ.

6 კომენტარი დატოვე შენი

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

*

*

  1. მონაცემებზე პასუხისმგებელი: მიგელ ანგელ გატონი
  2. მონაცემთა მიზანი: სპამის კონტროლი, კომენტარების მართვა.
  3. ლეგიტიმაცია: თქვენი თანხმობა
  4. მონაცემთა კომუნიკაცია: მონაცემები არ გადაეცემა მესამე პირებს, გარდა სამართლებრივი ვალდებულებისა.
  5. მონაცემთა შენახვა: მონაცემთა ბაზა, რომელსაც უმასპინძლა Occentus Networks (EU)
  6. უფლებები: ნებისმიერ დროს შეგიძლიათ შეზღუდოთ, აღადგინოთ და წაშალოთ თქვენი ინფორმაცია.

  1.   გვერდით დიჯო

    კარგი პოსტი, MySql… ისინი ბევრს იყენებენ FreeBSD- ში, K .KZKG ^ Gaara?, Would კარგი იქნება თუ გამოაქვეყნებთ შეტყობინებას, თუ როგორ დააყენოთ და დააკონფიგურიროთ MySql FreeBSD- ში, როგორიცაა: SSH (უსაფრთხო - გარსი), SSH ( ქსელის საშუალებით), SFTP (SSH- ფაილის გადაცემის პროტოკოლი), Apache - PHP- MySql, PHP5 და PhpSysInfo გაფართოებები.

    1.    KZKG ^ გაუარა დიჯო

      ამისათვის მე უნდა დავაყენო FreeBSD, არ ვფიქრობ, რომ ახლა დრო მაქვს, უბრალოდ სამსახური შევცვალე და ბევრი ახალი პასუხისმგებლობა მაქვს

  2.   საულ დიჯო

    ცოტა ხნის წინ მსგავსი რამ უნდა გამეკეთებინა პროექტისთვის nodej- ებით. ჩემს შემთხვევაში ის 250-მდე გაიზარდა და ეს ჩემთვის საკმარისი იყო, ახლა კარგად ვარ. მადლობა ინფორმაციისთვის

  3.   Francisco დიჯო

    გამარჯობა, დამეხმარებით თუ როგორ შევა /etc/mysql/my.cfg?

    მე მაქვს VPS, მაგრამ PUTTY– სთან ვერ შევალ.

    ულოცავენ.

  4.   სატყუარა დიჯო

    1.- კომენტირებული ვარიანტის პრობლემის გადასაჭრელად და სერვერის გადატვირთვისას ცვლილებების შენახვა, ფაილი უნდა შესწორდეს ვერსიის შესაბამისად:

    ////////////////////////////////////////////////// // /////////////////////
    // Ubuntu– ში 16.04 დირექტორიის შეცვლა ///////////////////////
    ////////////////////////////////////////////////// // /////////////////////
    vi /etc/mysql/mysql.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// // /////////////////////
    // Ubuntu– ში 15.04 დირექტორიის შეცვლა ///////////////////////
    ////////////////////////////////////////////////// // /////////////////////
    vi /etc/mysql/mariadb.conf.d/mysqld.cnf

    ////////////////////////////////////////////////// // /////////////////////
    // Ubuntu– ს კატალოგში ვცვლი ძველ /////////////////////////
    ////////////////////////////////////////////////// // /////////////////////

    vi/და ა. შ./mysql/my.cnf

    ////////////////////////////////////////////////// // /////////////////////
    // დაამატეთ ეს სტრიქონი [mysqld] ან [mysql] ტეგით //
    // შემდეგ გადატვირთეთ სერვერი //
    ////////////////////////////////////////////////// // /////////////////////
    მაქს_კავშირები = 500

  5.   აღშფოთებული დიჯო

    სახელმძღვანელო თავიდანვე არასდროს გიჩვენებთ როგორ შეცვალოთ იგი