"अधिकतम उपयोगकर्ता कनेक्शन" त्रुटि से कैसे छुटकारा पाएं?


16

मैं अपने वेबपेज के लिए MySQLi का उपयोग कर रहा हूं लेकिन जब भी मैं किसी विशेष पेज पर जाना चाहता हूं, मुझे मिलता है mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections

मैंने पहले ही सभी कनेक्शनों को बंद करने की कोशिश की लेकिन इससे स्थिति में सुधार नहीं हुआ।

क्या यह जानने का कोई तरीका है कि किसी विशेष क्षण या किसी अन्य उपयोगी डेटा में कौन से कनेक्शन खुले हैं जो मुझे इस समस्या को हल करने में मदद कर सकते हैं?

BTW, मैं PHP 5.2.17 और MySQL 5.1 का उपयोग कर रहा हूं।

जवाबों:


24

विकल्प max_user_connections एक सीमा है, जो सर्वर उदाहरण में एक साथ कनेक्शन की कुल संख्या पर नहीं, बल्कि व्यक्तिगत उपयोगकर्ता खाते पर है।

मान लीजिए कि उपयोगकर्ता को कहा जाता है db_user@localhost। आप यह पता लगा सकते हैं कि इस क्वेरी को चलाने से उपयोगकर्ता की कनेक्शन सीमा क्या है:

SELECT max_user_connections FROM mysql.user
WHERE user='db_user' AND host='localhost';

यदि यह एक गैर-मान है, तो इसे वापस बदल दें:

GRANT USAGE ON *.* TO db_user@localhost WITH MAX_USER_CONNECTIONS 0;

या

UPDATE mysql.user SET max_user_connections = 0
WHERE user='db_user' AND host='localhost';
FLUSH PRIVILEGES;

यह mysqldउपयोगकर्ता db_user@localhostको इसकी सीमा के रूप में वैश्विक सेटिंग max_user_connections का उपयोग करने की अनुमति देगा ।

एक बार जब आप इस बिंदु पर पहुंच जाते हैं, तो अब वैश्विक सेटिंग का उपयोग करके देखें

SHOW VARIABLES LIKE 'max_user_connections';

यदि यह एक गैर-मूल्य है, तो आपको दो काम करने की आवश्यकता है

# 1 को देखें : सेटिंग में देखें/etc/my.cnf

[mysqld]
max_user_connections = <some number>

उस लाइन पर टिप्पणी करें

# 2 : गतिशील रूप से मान सेट करें

SET GLOBAL max_user_connections = 0;

MySQL पुनरारंभ की आवश्यकता नहीं है।

चेतावनी

मैंने इस सेटिंग पर पिछले दिनों चर्चा की है

कोशिश करो !!!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.