कमांड लाइन का उपयोग करके mysql यूजर पासवर्ड बदलें


84

मैं कमांड लाइन का उपयोग करके डेटाबेस उपयोगकर्ता के लिए पासवर्ड अपडेट करने की कोशिश कर रहा हूं, और यह मेरे लिए काम नहीं कर रहा है। यह वह कोड है जिसका मैं उपयोग कर रहा हूं:

mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';

क्या कोई मुझे बता सकता है कि इस कोड में क्या गलत है।


वैसे आप क्या कदम उठा रहे हैं? सीधे शब्दों में यह काम नहीं करेगा। अगर मुझे इसकी प्रक्रिया और उस कोड को सही ढंग से याद है।
इदरीस

आह। क्या आपको याद है कि इसे कैसे करना है?
user3310572

यह थोड़ा और अधिक विस्तृत है और नवीन
।/2007/7/17/…

जवाबों:


115

अपने कोड में, एकल उद्धरण के अंदर पासवर्ड संलग्न करने का प्रयास करें। वैकल्पिक रूप से, mysql के प्रलेखन के अनुसार , निम्नलिखित काम करना चाहिए -

SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');

FLUSH PRIVILEGES;

अंतिम पंक्ति महत्वपूर्ण है अन्यथा आपका पासवर्ड परिवर्तन दुर्भाग्य से प्रभावी नहीं होगा।

संपादित करें:

मैंने अपने स्थानीय में एक परीक्षण चलाया और यह काम किया -

mysql>  set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)

मेरा संस्करण 5 है। आप अपने संस्करण को निर्धारित करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं -

SHOW VARIABLES LIKE "%version%";

4
जब मैं ऐसा करता हूं, तो यह अप्रत्याशित टोकन ('
user3310572

1
आप किस संस्करण का उपयोग कर रहे हैं? मैंने संस्करण 5.0 प्रलेखन से उपरोक्त सिंटैक्स उठाया। क्या आपने मेरे द्वारा पोस्ट की गई कमांड की कोशिश की?
हेलबॉय

मुझे विश्वास है कि मैं एक 4.0 संस्करण का उपयोग कर रहा हूं और हां मैंने इसे
आजमाया

MySQL Ver 14.14 में कमांड मेरे लिए अच्छी तरह से काम करती है, सुनिश्चित करें कि पासवर्ड को कोट में लपेटा गया है और पासवर्ड में कोई भी उद्धरण बच गया है।
स्नैवर

1
अजीब बात है, निस्तब्धता के बाद भी, अभी भी मेरे लिए काम नहीं करता है :-( मैं 5.7.18-0ubuntu0.16.04.1
मैसकल

37

MySQL 5.7.6 के अनुसार, उपयोग करें ALTER USER

उदाहरण:

ALTER USER 'username' IDENTIFIED BY 'password';

चूंकि:

  • SET PASSWORD ... = PASSWORD('auth_string') सिंटैक्स को MySQL 5.7.6 के रूप में चित्रित किया गया है और इसे भविष्य के MySQL रिलीज में हटा दिया जाएगा।

  • SET PASSWORD ... = 'auth_string'वाक्यविन्यास पदावनत नहीं है, लेकिन ALTER USERअब पासवर्ड निर्दिष्ट करने के लिए पसंदीदा कथन है।


1
क्या यह PHP के माध्यम से MySQL के साथ बातचीत करने के लिए भी सही है?
ओल्डबॉय

@Anthony हाँ अगर आपका MySQL संस्करण है = = 5.7.6
गोविंद राय

मैं MySQL के लिए नया हूँ। ALTER USER ... IDENTIFIED BY ...वास्तव में क्या करता है? यह कैसे अलग है UPDATE ... SET ...या INSERT INTO ...?
ओल्डबॉय

1
ALTER USER ... IDENTIFIED BY ...SQL कथन है जो आपके डेटाबेस के लिए उपयोगकर्ता अनुमतियों को कॉन्फ़िगर करता है। UPDATEऔर INSERTअलग-अलग कार्यशीलताएं हैं, जो नाम सुझाते हैं, रिकॉर्ड अपडेट करते हैं और अपने डेटाबेस में तालिकाओं में रिकॉर्ड दर्ज करते हैं।
गोविंद राय

2
mariaDb में त्रुटि देता हैERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root' IDENTIFIED BY
पावेल निदोबा

14

नोट: यू को रूट उपयोगकर्ता के रूप में लॉगिन करना चाहिए

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');


3

MySQL 5.7.6 से पहले यह कमांड लाइन से काम करता है:

mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"

मेरे पास परीक्षण करने के लिए mysql स्थापित नहीं है, लेकिन मुझे लगता है कि आपके मामले में यह होगा

mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"

2

विंडोज़ 10 में, बस वर्तमान लॉगिन से बाहर निकलें और इसे कमांड लाइन पर चलाएं

-> mysqladmin -u root password “newpassword”

जहां रूट के बजाय कोई भी उपयोगकर्ता हो सकता है।




-1

आपका लॉगिन जड़ होना चाहिए /usr/local/directadmin/conf/mysql.conf। फिर निम्नलिखित प्रयास करें

UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30';
FLUSH PRIVILEGES;

होस्ट आपका mysql होस्ट है।


1
काम नहीं करता है। अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि लौटना ('
user3310572
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.