आपके पास संभवतः एक अनाम उपयोगकर्ता है ''@'localhost'
या ''@'127.0.0.1'
।
मैनुअल के अनुसार :
जब कई मैच संभव होते हैं, तो सर्वर को यह निर्धारित करना चाहिए कि उनमें से किसका उपयोग करना है। यह इस मुद्दे को इस प्रकार हल करता है: (...)
- जब कोई क्लाइंट कनेक्ट करने का प्रयास करता है, तो सर्वर क्रमबद्ध क्रम में [तालिका mysql.user] की पंक्तियों के माध्यम से देखता है ।
- सर्वर पहली पंक्ति का उपयोग करता है जो क्लाइंट होस्ट नाम और उपयोगकर्ता नाम से मेल खाता है।
(...) सर्वर पहले-विशिष्ट होस्ट मानों के साथ पंक्तियों को क्रमबद्ध करने वाले नियमों का उपयोग करता है । शाब्दिक होस्ट नाम [जैसे कि 'लोकलहोस्ट'] और आईपी पते सबसे विशिष्ट हैं।
इसलिए, इस तरह के एक अनाम उपयोगकर्ता किसी भी अन्य उपयोगकर्ता को "मास्क" करेगा जैसे '[any_username]'@'%'
कनेक्ट करते समय localhost
।
'bill'@'localhost'
मैच करता है 'bill'@'%'
, लेकिन ''@'localhost'
पहले से मेल खाएगा (जैसे) ।
अनुशंसित समाधान इस अनाम उपयोगकर्ता को छोड़ना है (यह आमतौर पर वैसे भी करने के लिए एक अच्छी बात है)।
नीचे दिए गए संपादन मुख्य प्रश्न के लिए ज्यादातर अप्रासंगिक हैं। ये केवल इस थ्रेड के भीतर अन्य टिप्पणियों में उठाए गए कुछ सवालों के जवाब देने के लिए हैं।
संपादित करें 1
'bill'@'%'
सॉकेट के माध्यम से प्रमाणीकरण ।
रूट @ myhost: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass --socket = / tmp / mysql-5.5.sock
माईएसक्यूएल मॉनिटर मे आपका स्वागत है (...)
mysql> उपयोगकर्ता का चयन करें, mysql.user से होस्ट करें;
+ ------ + ----------- +
| उपयोगकर्ता | होस्ट |
+ ------ + ----------- +
| बिल | % |
| जड़ | 127.0.0.1 |
| जड़ | :: 1 |
| जड़ | लोकलहोस्ट |
+ ------ + ----------- +
सेट में 4 पंक्तियाँ (0.00 सेकंड)
mysql> SELECT USER (), CURRENT_USER ();
+ ---------------- + ---------------- +
| USER () | CURRENT_USER () |
+ ---------------- + ---------------- +
| बिल @ लोकलहोस्ट | बिल @% |
+ ---------------- + ---------------- +
1 पंक्ति में सेट (0.02 सेकंड)
mysql> SHOW VARIABLES 'Skip_networking' को पसंद करता है;
+ ----------------- + ------- +
| चर_नाम | मान |
+ ----------------- + ------- +
| Skip_networking | पर |
+ ----------------- + ------- +
1 पंक्ति में सेट (0.00 सेकंड)
संपादित करें २
सटीक सेटअप के अलावा, मैं नेटवर्किंग को फिर से सक्रिय करता हूं, और अब मैं एक अनाम उपयोगकर्ता बनाता हूं ''@'localhost'
।
root @ myhost: /home/mysql-5.5.16-linux2.6-x86_64#/sysql
माईएसक्यूएल मॉनिटर मे आपका स्वागत है (...)
mysql> सृजित USER '' @ 'लोकलहोस्ट' IDENTIFIED BY 'अदरपास';
क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)
mysql> अलविदा
root @ myhost: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
--socket = / tmp / mysql-5.5.sock
ERROR 1045 (28000): उपयोगकर्ता 'बिल' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश निषेध है
root @ myhost: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
-127.0.0.1 --protocol = टीसीपी
ERROR 1045 (28000): उपयोगकर्ता 'बिल' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश निषेध है
root @ myhost: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
-होकलहोस्ट --protocol = टीसीपी
ERROR 1045 (28000): उपयोगकर्ता 'बिल' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश निषेध है
संपादित करें 3
समान स्थिति जैसे कि संपादन 2 में, अब अनाम उपयोगकर्ता का पासवर्ड प्रदान करना।
रूट @ myhost: / home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -panotherpass -होकलॉस्ट
माईएसक्यूएल मॉनिटर मे आपका स्वागत है (...)
mysql> SELECT USER (), CURRENT_USER ();
+ ---------------- + ---------------- +
| USER () | CURRENT_USER () |
+ ---------------- + ---------------- +
| बिल @ लोकलहोस्ट | @localhost |
+ ---------------- + ---------------- +
1 पंक्ति में सेट (0.01 सेकंड)
निष्कर्ष 1, संपादन 1 से: 'bill'@'%'
एक सॉकेट के माध्यम से प्रमाणित कर सकता है ।
निष्कर्ष 2, संपादन 2 से: क्या कोई टीसीपी के माध्यम से या सॉकेट के माध्यम से जुड़ता है, प्रमाणीकरण प्रक्रिया पर कोई प्रभाव नहीं पड़ता है (सिवाय एक किसी और के रूप में कनेक्ट नहीं हो सकता है लेकिन 'something'@'localhost'
सॉकेट के माध्यम से, जाहिर है)।
निष्कर्ष 3, संपादन 3 से: हालांकि मैंने निर्दिष्ट किया -ubill
, मुझे एक अनाम उपयोगकर्ता के रूप में पहुंच प्रदान की गई है। यह ऊपर वर्णित "सॉर्टिंग नियमों" के कारण है। ध्यान दें कि अधिकांश डिफ़ॉल्ट प्रतिष्ठानों में, एक नो-पासवर्ड, अनाम उपयोगकर्ता मौजूद है (और सुरक्षित / हटाया जाना चाहिए)।
FLUSH PRIVILEGES
?