MySQL इंस्टाल करने के ठीक बाद, आपके पास root
होगा उपयोगकर्ता उपलब्ध है।
यह वह उपयोगकर्ता है जिसका उपयोग आप यह देखने के लिए कर सकते हैं कि MySQL काम कर रहा है या नहीं, लेकिन यह अन्य प्रकार के उपयोगों के लिए उपयोगकर्ता नहीं होना चाहिए।
क्यों? क्योंकि यह बहुत शक्तिशाली है ।
महान शक्ति के साथ बड़ी जिम्मेदारी आती है (स्पाइडर-मैन के चाचा ने कहा)। और विशेष रूप से, यदि आप गलतियाँ करते हैं तो बड़ा खतरा है।
इसके बजाय, आपको ऐसे तदर्थ उपयोगकर्ता बनाने चाहिए जिनके पास केवल अपना कार्य करने की अनुमति हो, और अधिक नहीं। लिनक्स या किसी यूनिक्स सिस्टम का उपयोग करने के लिए समान, उदाहरण के लिए:आप root
का उपयोग नहीं करना चाहते हैं उपयोगकर्ता, लेकिन आपका अपना उपयोगकर्ता खाता।
एक नया उपयोगकर्ता बनाने के लिए, root
. का उपयोग करके MySQL से कनेक्ट करें उपयोगकर्ता:
mysql -u root -p
फिर कमांड का उपयोग करें
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
उदाहरण के लिए, test_user
. नामक उपयोगकर्ता बनाने के लिए पासवर्ड के साथ test_password12A
कमांड चलाएँ:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';
कमांड को यह कहते हुए एक लाइन लौटानी चाहिए कि Query OK, 0 rows affected (X.XX sec)
:
यदि आपने अमान्य पासवर्ड का उपयोग किया है, तो सिस्टम आपको ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
. इस मामले में त्रुटि कहती है कि पासवर्ड पर्याप्त जटिल नहीं है, क्योंकि जब मैंने MySQL स्थापित किया तो मैंने इसे पासवर्ड पर एक निश्चित नीति का उपयोग करने के लिए कहा था।
एक दम बढ़िया! अब उपयोगकर्ता बनाया गया है, और हम उस उपयोगकर्ता का उपयोग करके MySQL से कनेक्ट कर सकते हैं। कमांड लाइन से आप QUIT
. लिखकर बाहर निकल सकते हैं , और टाइपिंग:
mysql -u test_user -p
अब अगर मैं एक डेटाबेस बनाने की कोशिश करता हूं, तो मुझे यह कहते हुए एक त्रुटि मिलेगी ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
तक पहुंच अस्वीकृत :
क्यों? क्योंकि उपयोगकर्ता के पास नया डेटाबेस बनाने की अनुमति नहीं है ।
हम दूसरे ट्यूटोरियल में अनुमतियों के साथ काम करने का तरीका देखेंगे।
यह @'localhost'
का उल्लेख करने योग्य है स्ट्रिंग हम उपयोगकर्ता बनाने के लिए प्रयोग किया जाता है। यह MySQL को बताता है कि यूजर केवल लोकलहोस्ट से ही कनेक्ट हो सकता है। जो चीजों का परीक्षण करते समय ठीक है और जब कोई भी एप्लिकेशन जो MySQL से कनेक्ट होगा, उसी कंप्यूटर पर चल रहा है जो DBMS चलाता है।
जब यह सच नहीं है, तो आपको या तो मैन्युअल रूप से उस आईपी को दर्ज करना होगा जिससे उपयोगकर्ता कनेक्ट होगा, या %
का उपयोग करें। वाइल्डकार्ड:
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';
मैं इस ट्यूटोरियल को यह दिखाकर बंद करना चाहता हूं कि हमारे द्वारा बनाए गए उपयोगकर्ता को कैसे हटाया जाए:
DROP USER 'test_user'@'localhost';