महीनों से मैं बिना किसी समस्या के SSH सुरंग के माध्यम से हमारे स्थानीय परीक्षण सर्वर पर चल रहे MySQL के उदाहरण से जुड़ रहा हूं। अचानक हालांकि, बिना किसी बदलाव के, जिसके बारे में मैं सोच भी नहीं सकता, सर्वर ने त्रुटि के लिए सीक्वल प्रो से प्रयास में लॉग को अस्वीकार करना शुरू कर दिया है:
127.0.0.1 होस्ट करने के लिए कनेक्ट करने में असमर्थ क्योंकि एक्सेस से इनकार कर दिया गया था।
अपने उपयोगकर्ता नाम और पासवर्ड को दोबारा जांचें और सुनिश्चित करें कि आपके वर्तमान स्थान से प्रवेश की अनुमति है।
MySQL ने कहा: उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश निषेध है
मैं सीधे SSH के माध्यम से सर्वर से कनेक्ट होने पर टर्मिनल से लॉग इन करने में सक्षम हूं, बस SSH सुरंग के माध्यम से नहीं। समस्या सीक्वल प्रो या सिर्फ खुद के लिए विशिष्ट नहीं है, मुझे MySQL वर्कबेंच के माध्यम से कनेक्ट करते समय एक ही त्रुटि मिलती है जैसे कि कार्यालय में अन्य करते हैं। मैंने mysqladmin
केवल विवेक के लिए पासवर्ड रीसेट किया है , यह निश्चित रूप से समस्या नहीं है।
जब मैंने इसे देखना शुरू किया तो मैंने देखा कि त्रुटि "127.0.0.1" के बजाय "लोकलहोस्ट" के रूप में सर्वर को रिपोर्ट कर रही थी, जिसे मैंने सीक्वल प्रो में दर्ज किया। एक मित्र ने सुझाव दिया कि शायद सिर्फ खराब त्रुटि से निपटना है, लेकिन ऐसा लगता है कि MySQL में लोकलहोस्ट और 127.0.0.1 के बीच महत्वपूर्ण अंतर दिया गया है।
सुरंग के मुद्दे के आसपास जाने के प्रयास में, मैंने रूट @% तक पहुंच प्रदान की, ताकि मैं सीधे कनेक्ट कर सकूं। यह अधिकांश भाग के लिए काम करता है, मैं टेबल डेटा देख सकता हूं, नए डेटाबेस बना सकता हूं, आदि। एकमात्र समस्या यह है कि जब मैं उन उपयोगकर्ताओं को बनाने के लिए आता हूं जिन्हें मैं त्रुटि देता हूं:
उपयोगकर्ता 'रूट' @ '%' के लिए अस्वीकृत (पासवर्ड का उपयोग करके: YES)
अजीब तरह से उपयोगकर्ता वास्तव में बनाया गया है, मुझे लगता है कि यह अनुदान के साथ सिर्फ एक मुद्दा है। फिर से, टर्मिनल से मैं रूट के रूप में लॉग इन करने पर कुछ भी कर सकता हूं।
क्या कोई सुरंग कनेक्शन और (शायद) अनुदान आदेशों का उपयोग करने से इनकार कर दिया गया है, जिससे एक्सेस अस्वीकृत त्रुटि प्राप्त हो रही है?
संदर्भ के लिए MySQ का संस्करण 5.6.16 है जो ज्यादातर डिफ़ॉल्ट सेटिंग्स के साथ है, मैक ओएस एक्स सर्वर मशीन पर होमब्रे के माध्यम से स्थापित किया गया है।
अपडेट करें
यहां उन मेजबानों की सूची दी गई है जिन पर वर्तमान में रूट की पहुंच दी गई है:
mysql> select host,user from mysql.user where user='root';
+----------------+------+
| host | user |
+----------------+------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | root |
+----------------+------+
4 rows in set (0.00 sec)
जैसा कि मैंने इसे समझा, पहली पंक्ति ("%") को वास्तव में दूसरों को निरर्थक बनाना चाहिए?
अपडेट २
अनुदान मुद्दा तय; रूट @% उपयोगकर्ता को with grant option
अंत में अतिरिक्त के साथ सभी विशेषाधिकार प्रदान नहीं किए गए हैं , इसलिए यह सब कुछ कर सकता है लेकिन अनुदान। अभी भी जानना पसंद करेंगे कि SSH सुरंगों को क्यों नकारा जा रहा है।