उस त्रुटि संदेश का आमतौर पर अर्थ यह होता है कि या तो हम जिस पासवर्ड का उपयोग कर रहे हैं वह उस पासवर्ड से मेल नहीं खाता है जो MySQL सोचता है कि पासवर्ड उस उपयोगकर्ता के लिए होना चाहिए जिसे हम कनेक्ट कर रहे हैं, या एक मेल खाने वाला MySQL उपयोगकर्ता मौजूद नहीं है (बनाया नहीं गया है)।पी>
MySQL में, उपयोगकर्ता को उपयोगकर्ता नाम ("test2") और . दोनों द्वारा पहचाना जाता है एक होस्ट ("लोकलहोस्ट")।
त्रुटि संदेश उपयोगकर्ता . की पहचान करता है ("test2") और होस्ट ("लोकलहोस्ट") मान...
'test2'@'localhost'
हम यह देखने के लिए जांच सकते हैं कि उपयोगकर्ता मौजूद है या नहीं, क्लाइंट से इस क्वेरी का उपयोग करके हम इससे जुड़ सकते हैं:
SELECT user, host FROM mysql.user
हम एक ऐसी पंक्ति की तलाश कर रहे हैं जिसमें उपयोगकर्ता . के लिए "test2" हो , और "लोकलहोस्ट" होस्ट . के लिए ।
user host
------- -----------
test2 127.0.0.1 cleanup
test2 ::1
test2 localhost
यदि वह पंक्ति मौजूद नहीं है, तो होस्ट को %
. के वाइल्डकार्ड मान पर सेट किया जा सकता है , किसी अन्य होस्ट से मिलान करने के लिए जो मेल नहीं खाता है।
यदि पंक्ति मौजूद है, तो पासवर्ड मेल नहीं खा सकता है। हम पासवर्ड बदल सकते हैं (यदि हम पर्याप्त विशेषाधिकार वाले उपयोगकर्ता के रूप में जुड़े हुए हैं, जैसे root
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
हम यह भी सत्यापित कर सकते हैं कि उपयोगकर्ता के पास डेटाबेस में वस्तुओं पर विशेषाधिकार हैं।
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
संपादित करें
यदि हम DML संचालन (INSERT, UPDATE, DELETE) के साथ mysql विशेषाधिकार तालिका में परिवर्तन करते हैं, तो वे परिवर्तन तब तक प्रभावी नहीं होंगे जब तक MySQL तालिकाओं को फिर से नहीं पढ़ता। हम FLUSH PRIVILEGES
के साथ दोबारा पढ़ने के लिए बाध्य करके परिवर्तनों को प्रभावी बना सकते हैं एक विशेषाधिकार प्राप्त उपयोगकर्ता द्वारा निष्पादित कथन।