Mac पर इंस्टॉल के बाद ALTER USER स्टेटमेंट का उपयोग करके MySQL रूट पासवर्ड रीसेट करें


183

मैं पूरे मैक अनुभव के लिए नया हूँ। मैंने हाल ही में MySQL स्थापित किया है और ऐसा लगता है कि मुझे इंस्टॉल करने के बाद पासवर्ड रीसेट करना होगा। यह मुझे कुछ और नहीं करने देगा।

अब मैं पहले से ही सामान्य तरीके से पासवर्ड रीसेट करता हूं:

update user set password = password('XXX') where user = root;

:

दुर्भाग्य से ऐसा लगता है कि मुझे पासवर्ड को एक अलग तरीके से बदलने की आवश्यकता है जो मेरे लिए अज्ञात है। हो सकता है कि यहाँ कोई पहले से ही उस समस्या को लेकर आया हो?

जवाबों:


507

यदि यह पासवर्ड सेट करने का आपका पहला अवसर नहीं है , तो इस विधि को आज़माएँ:

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

और यदि आपको निम्न त्रुटि मिलती है, तो एक उच्च संभावना है कि आपने अपना पासवर्ड पहले कभी सेट नहीं किया है:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

पहली बार अपना पासवर्ड सेट करने के लिए :

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

संदर्भ: https://dev.mysql.com/doc/refman/5.6/en/alter-user.html


10
धन्यवाद! हालांकि MySQL से बहुत भ्रामक त्रुटि संदेश!
एड।

1
इसने मेरे साथ काम किया mysql-5.7.13-osx10.11-x86_64
गिरीबी

1
'Mysql> SET PASSWORD = PASSWORD (' your_new_password ')?' के बाद, मुझे निम्नलिखित त्रुटि मिल रही है: 'ERROR 29 (HY000): फ़ाइल' ./mysl/user.MYD 'नहीं मिली (Errcode: 2 - No ऐसा नहीं है) फ़ाइल या निर्देशिका) '। क्या कोई मेरी मदत कर सकता है ?
रे किम

4
आप ध्यान दें कि MySQL क्या सुझाता है, आप "ALTER USER" कथन का उपयोग नहीं करते हैं, लेकिन सिर्फ "SASS PASSWORD" ...
Fabien Haddadi

1
पहला उदाहरण संभावित रूप से उस पंक्ति को सबमिट करते समय आपके द्वारा उपयोग किए जा रहे किसी अन्य उपयोगकर्ता के लिए एक पासवर्ड सेट करने का प्रयास करता है। दूसरा उस उपयोगकर्ता के लिए पासवर्ड सेट करने का प्रयास करता है जिसे आपने mysql में लॉग इन किया था। इस प्रकार बाद में काम करता है।
हफेनक्रानिक

130

यदि आपने mysql का उपयोग करना शुरू कर दिया है mysql -u root -p

प्रयत्न ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

स्रोत: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


1
धन्यवाद! यह मेरे लिए काम किया! मैं mysql-5.7.11-osx10.10-x86_64 का उपयोग कर रहा हूं।
LeArNr

यह काम किया; धन्यवाद! यह मुझे बहुत दुःख देता है कि भले ही MySQL इतना व्यापक रूप से इस्तेमाल किया जाने वाला कार्यक्रम है, लेकिन इसे तेजी से चलाने और स्थापित करने के लिए कोई एक स्टॉप डॉक्यूमेंटेशन नहीं है।
शत्रु

धन्यवाद ! इसने मेरी मदद की
Sparw

3
बहुत हताशा के बाद, इस का एक संस्करण टकसाल 18 mysql 5.7.18 पर काम किया:ALTER USER 'root'@'localhost' indentified WITH mysql_native_password BY 'password';
स्टीव

एक लाख धन्यवाद। बस यही एक चीज है जिसने मेरे लिए काम किया है।
RandyMy

33

मुझे मैक पर भी यही समस्या है

सबसे पहले, mysql में सैंडबॉक्स मोड से लॉग इन करें

mysql -u <user> -p --connect-expired-password

फिर, पासवर्ड सेट करें

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXXX');

Query OK, 0 rows affected, 1 warning (0.01 sec)

यह मेरे लिए काम करता है ~

द्वारा: /dba/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde


1
यह ध्यान में रखते हुए काफी जटिल है कि आपको डेटाबेस का उपयोग करने से पहले भी ऐसा करना होगा।
seba.wagner

चेतावनी में यह आप का उपयोग करना चाहता हैSET PASSWORD FOR 'root'@'localhost' = 'XXXX';
Arsen Zahray

22

यदि आप MySQL 5.7.6 और बाद में उपयोग करते हैं:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

यदि आप MySQL 5.7.5 और पूर्ववर्ती का उपयोग करते हैं:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

MySQL प्रलेखन


1
मैं MySQL 5.7.9 का उपयोग कर रहा हूं और अजीब बात SET PASSWORD = PASSWORD('my_pass')मेरे लिए काम की है। हाल के संस्करणों वाले लोगों की टिप्पणियां हैं जिनका उल्लेख है कि इस कथन ने उनके लिए भी काम किया। इसके बावजूद, मैंने आपके उत्तर को रद्द कर दिया क्योंकि आपको MySQL डॉक्स में यह विशेष संदर्भ मिला है जिसका पहले किसी ने उल्लेख नहीं किया था।
आर्मफुट

MySQL 8 सेट पासवर्ड फेंक दिया और त्रुटि। ALTER USER ने काम किया।
तिमार इवो बत्तीस

13

MySQL 5.7.x पर आपको इसे बदलने में सक्षम होने के लिए मूल पासवर्ड पर स्विच करने की आवश्यकता है, जैसे:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

11

इन्हें चलाएं:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

फिर भागो

./mysql -u root

इसे लॉग इन करना चाहिए। अब FLUSH विशेषाधिकारों को चलाएं;

फिर MySQL कंसोल से बाहर निकलें और लॉग इन करने का प्रयास करें। यदि वह काम नहीं करता है तो ये चलाएं:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

नए पासवर्ड को बदलने के लिए xxxxxx बदलें। फिर दोबारा लॉग इन करने का प्रयास करें।

अपडेट करें। इसे देखें http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

इसे आपकी समस्या का समाधान करना चाहिए।

यदि आप oracle पर हैं तो यह प्रयास करें

ALTER USER username IDENTIFIED BY password

नहीं, क्षमा करें यह भी काम नहीं करता है। कम से कम अब और नहीं। Oracle, btw द्वारा 'पासवर्ड' कॉलम का नाम बदल दिया गया है। इसे अब प्रमाणीकरण_स्ट्रिंग कहा जाता है। लेकिन मैं इस कमांड को निष्पादित नहीं कर सकता, क्योंकि मुझे पहले ALTER USER कमांड का उपयोग करके पासवर्ड बदलना होगा। यह अविश्वसनीय निराशा है, क्योंकि यह नहीं है कि आप पारंपरिक रूप से पासवर्ड को कैसे अपडेट करेंगे। ALTER को टेबल, फ़ंक्शंस और सामान के लिए आरक्षित किया जाना चाहिए, न कि किसी तालिका में प्रविष्टियों को बदलना। वह अपडेट स्टेटमेंट है। (अफ़सोस करने के लिए क्षमा करें)
dengar81

@ शिव पवन: दो चेतावनियाँ मैं उम्मीद करूंगा: mysqladmin: [चेतावनी] कमांड लाइन इंटरफ़ेस पर पासवर्ड का उपयोग करना असुरक्षित हो सकता है। चेतावनी: चूंकि पासवर्ड को सादे पाठ में सर्वर पर भेजा जाएगा, इसलिए पासवर्ड सुरक्षा सुनिश्चित करने के लिए ssl कनेक्शन का उपयोग करें। - मैं विचार करूंगा कि पासवर्ड अपडेट हो गया है। और वास्तव में मैं नए पासवर्ड के साथ लॉग ऑन कर सकता हूं। हालाँकि, मैं अभी भी कोई प्रश्न नहीं चला सकता, क्योंकि मुझे ALTER USER कमांड के साथ पासवर्ड अपडेट करने की आवश्यकता है :(?
dengar81

@ शिव पवन: कोशिश करो क्या? मैंने पहले ही आपके द्वारा सुझाई गई कमांड का उपयोग करने की कोशिश की। ./Mysqladmin आदेश (दो चेतावनी) का उपयोग कर पासवर्ड रीसेट और फिर mysql.user पर अद्यतन चलाने के लिए आगे बढ़ने से ... दूसरा आदेश संदेश के साथ विफल रहता है "आप ALTER उपयोगकर्ता [...] का उपयोग कर अपना पासवर्ड रीसेट चाहिए"
dengar81

यह एकमात्र समाधान है जिसने मेरे लिए काम किया। यदि आपके पास mysql के नवीनतम संस्करण में एक समाप्त पासवर्ड है, तो यह आपको ALTER_USER या SET_PASSWORD की अनुमति नहीं देगा।
हारून हेंडरसन

7

शायद कोशिश है कि?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');

या

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

निर्भर करता है कि आप किस एक्सेस का उपयोग करते हैं।

(और यह सुनिश्चित नहीं करना चाहिए कि आपको अपने क्षेत्र के नाम बदलने चाहिए ...)

https://dev.mysql.com/doc/refman/5.0/en/set-password.html


क्षमा करें, यह काम नहीं करता है: ERROR 1820 (HY000): आपको इस कथन को निष्पादित करने से पहले ALTER USER कथन का उपयोग करके अपना पासवर्ड रीसेट करना होगा।
dengar81


7

अद्यतन उपयोगकर्ता SET प्रमाणीकरण_string = PASSWORD ("MyPassWord") जहां उपयोगकर्ता = 'जड़'; त्रुटि 1064 (42000): आपके SQL सिंटैक्स में कोई त्रुटि है; मैनुअल को चेक करें जो आपके MySQL के सर्वर वर्जन से मेल खाती है ('MyPassWord') के पास सही सिंटैक्स का उपयोग करने के लिए लाइन पर उपयोगकर्ता = 'रूट' '

के साथ हल किया गया

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

नीचे साइट से संदर्भ

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


5

ऑन Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64), मैंने लॉगिन किया: mysql -uroot -pजब आप इसे इंस्टॉल करते हैं तो MySQL द्वारा जनरेट किए गए पासवर्ड में टाइप किया जाता है। फिर..

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

उदाहरण:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye $ mysql -uroot -p

और आप 'Ab1234' में टाइप कर सकते हैं


3

मैसूर 5.7.24 रूट को पहला लॉगिन प्राप्त करें

चरण 1: लॉग से पासवर्ड प्राप्त करें

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

चरण 2: उसके साथ mysql पर लॉगिन करें

mysql -uroot -p'wHkJHUxeR4)w'

चरण 3: आपने नया रूट पासवर्ड डाला

SET PASSWORD = PASSWORD('xxxxx');

आपको मिला ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

इसे कैसे ठीक करें?

इसे चलाओ SET GLOBAL validate_password_policy=LOW;

पुनः प्रयास करें SET PASSWORD = PASSWORD('xxxxx');



2

यहाँ मेरे लिए काम करने का तरीका है।

mysql> show databases ;

त्रुटि 1820 (HY000): आपको इस कथन को निष्पादित करने से पहले ALTER USER कथन का उपयोग करके अपना पासवर्ड रीसेट करना होगा।

mysql> uninstall plugin validate_password;

त्रुटि 1820 (HY000): आपको इस कथन को निष्पादित करने से पहले ALTER USER कथन का उपयोग करके अपना पासवर्ड रीसेट करना होगा।

mysql> alter user 'root'@'localhost' identified by 'root';

क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.01 सेकंड)

mysql> flush privileges;

क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.03 सेकंड)


1

जब आप इसका उपयोग करते हैं तो SET PASSWORD = PASSWORD('your_new_password');यह इसके लिए दुर्घटनाग्रस्त हो सकता है

(ERROR 1819 (HY000): आपका पासवर्ड वर्तमान नीति आवश्यकताओं को पूरा नहीं करता है)

.आप इसका इस्तेमाल कर सकते हैं SET GLOBAL validate_password_policy=LOW;


1

5.7 संस्करण में। 'पासवर्ड' फ़ील्ड हटा दिया गया है। 'Authent_string' इसे प्रतिस्थापित करता है

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;

0

मुझे Mac OS X 10.10.4 (Yosemite) में भी यही समस्या मिली। मेरे लिए PASSWORD काम करें। mysql के लिए पासवर्ड डालें- mysql> SET PASSWORD = PASSWORD ((your_password '); क्वेरी ठीक, 0 पंक्तियाँ प्रभावित, 1 चेतावनी (0.01 सेकंड)

.bash_profile में अपने मैसकल पर्यावरण पथ चर को सेट करें और नीचे दी गई लाइन
एक्सपोर्ट PATH = $ PATH: / usr / local / mysql / bin को जोड़ें, उसके बाद, निम्न कमांड चलाएँ: source .bash_profile


0

समस्या तब थी जब मैंने mysql कार्यक्षेत्र और mysql समुदाय सर्वर स्थापित किया था। सर्वर इंस्टालेशन के दौरान जनरेट किया गया पासवर्ड। कार्यक्षेत्र में मौजूदा स्थानीय उदाहरण पर डबल क्लिक करने से एक संवाद शुरू हो गया, जहां मैं नया पासवर्ड सेट कर सकता था।


0

mysql> SET PASSWORD = PASSWORD('your_new_password'); ये मेरे लिए सही है।


0

संस्करणों को याद रखें 5.7.23 और बाद में - उपयोगकर्ता तालिका में प्रमाणीकरण स्ट्रिंग के बजाय कॉलम पासवर्ड नहीं है, इसलिए उपयोगकर्ता के लिए पासवर्ड रीसेट करते समय काम करता है।

update user set authentication_string=password('root') where user='root';
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.