कुछ मामलों में Amazon RDS (या कहीं और) पर MySQL चलाते समय, FLUSH
की आवश्यकता हो सकती है सभी host
MySQL से रिकॉर्ड। आमतौर पर, यह तब आवश्यक होता है जब त्रुटि "Host 'host_name' is blocked"
होता है, जो उस विशेष host_name
. से अतिरिक्त कनेक्शन को रोकेगा ।
host_name blocked
त्रुटि तब होती है जब max_connect_errors
. की संख्या MySQL के कॉन्फ़िगरेशन में निर्दिष्ट सीमा पार हो गई है, जिसका अर्थ है कि एक विशेष होस्ट ने कई बार असफल रूप से कनेक्ट करने का प्रयास किया। यह MySQL द्वारा एक सुरक्षा उपाय है जो उन मेजबानों/उपयोगकर्ताओं के अवांछित हमलों को रोकने के लिए है जिनके पास उचित क्रेडेंशियल नहीं हैं, लेकिन कभी-कभी यह गलती से हो सकता है और मेजबानों को फ्लश करके हल करने की आवश्यकता हो सकती है।
फ्लशिंग होस्ट क्या करते हैं?
एक MySQL उपयोगकर्ता के साथ उचित विशेषाधिकारों के साथ FLUSH
. निष्पादित करता है कथन, MySQL फ्लश टेबल, लॉक और आंतरिक कैश सिस्टम को पास किए गए options
के आधार पर साफ़ कर सकता है . FLUSH HOSTS;
. के मामले में , MySQL होस्ट कैश को खाली कर देगा, जिसका प्रभावी रूप से मतलब है कि MySQL का रिकॉर्ड जो वर्तमान में हैं या हाल ही में कनेक्ट हुए हैं, रीसेट हो गया है, जिससे उक्त होस्ट से आगे के कनेक्शन की अनुमति मिलती है।
फ्लश होस्ट सीधे निष्पादित करना
हालांकि यह हो सकता है कि आपको MySQL से कनेक्ट होने से पूरी तरह से रोका गया हो, कुछ मामलों में यह संभव है कि सिस्टम एक कनेक्शन स्लॉट को "सेव" करेगा जो केवल प्राथमिक या root
के लिए उपलब्ध है। खाता।
Amazon RDS
के लिए , यह उपयोगकर्ता नाम आमतौर पर आपके प्रबंधन कंसोल में डिफ़ॉल्ट या "मास्टर" के रूप में पाया जाता है। इस प्राथमिक उपयोगकर्ता नाम के साथ अपने MySQL सर्वर से कनेक्ट करने का प्रयास करें।
यदि आप कनेक्ट करने में सक्षम हैं, तो अपने मेजबानों को फ्लश करना FLUSH HOSTS;
चलाने जितना आसान है। MySQL स्टेटमेंट:
FLUSH HOSTS;
अब आपको अपना host_name blocked
cleared साफ़ कर देना चाहिए था त्रुटि और अपने मानक MySQL खाते से जुड़ने में सक्षम हो।
MySQLAdmin का उपयोग करके दूरस्थ रूप से होस्ट को फ्लश करना
इस घटना में कि आप MySQL को मास्टर खाते के रूप में कनेक्ट करने में असमर्थ हैं और अभी भी blocked
receiving प्राप्त कर रहे हैं त्रुटियां, अगला विकल्प सर्वर से दूरस्थ रूप से कनेक्ट करना और flush
. निष्पादित करना है mysqladmin
. का उपयोग करके कमांड उपकरण।
ऐसा करने के लिए, आपको एक अलग . से कनेक्ट होना होगा EC2 इंस्टेंस या सर्वर जिसकी त्रुटि उत्पन्न करने वाले RDS सर्वर तक पहुंच है।
एक बार कनेक्ट होने के बाद, निम्न कमांड को <>
. के बीच प्रतिस्थापित उचित विकल्पों के साथ निष्पादित करें :
$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts
सफल होने पर, flush-hosts
कमांड को अपेक्षित रूप से निष्पादित किया जाएगा और अब आप सामान्य रूप से MySQL से कनेक्ट कर पाएंगे।
आरडीएस इंस्टेंस को रीबूट करना
अंतिम विकल्प, यदि अन्य सभी विफल हो जाते हैं, तो बस आरडीएस प्रबंधन नियंत्रण कक्ष में लॉगिन करना है और त्रुटि देने वाले आरडीएस इंस्टेंस को मैन्युअल रूप से पुनरारंभ करना है। यह hosts cache
को प्रभावी ढंग से रीसेट कर देगा आपके लिए, हालांकि यह उत्पादन परिस्थितियों में आदर्श नहीं हो सकता है।