OS X पर MySQL रूट यूजर पासवर्ड सेट करना


235

मैंने मैक ओएस एक्स पर MySQL स्थापित किया। अगला चरण रूट यूजर पासवर्ड सेट कर रहा था, इसलिए मैंने यह अगला किया:

  1. यूनिक्स कमांड लाइन का उपयोग करने के लिए टर्मिनल ऐप लॉन्च करें।
  2. यूनिक्स प्रॉम्प्ट के तहत मैंने इन कमांडों को निष्पादित किया:

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

लेकिन, जब मैं कमांड निष्पादित करता हूं

$ ./mysql -u root, यह उत्तर है:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

मैं mysqlबिना किसी पासवर्ड के कमांड लाइन में जा सकता हूं !

ऐसा क्यों है?

जवाबों:


320

FLUSH PRIVILEGESजब आप MySQL टर्मिनल में लॉग इन करते हैं तो कमांड की कोशिश करें । यदि वह काम नहीं करता है, तो MySQL टर्मिनल में कमांड के निम्नलिखित सेट को आज़माएं

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

आप जो भी पासवर्ड चाहते हैं, उसके साथ NEWPASSWORD बदलें। सब सेट होना चाहिए!

अद्यतन : MySQL 5.7 के रूप में, passwordफ़ील्ड का नाम बदल दिया गया है authentication_string। पासवर्ड बदलते समय, पासवर्ड बदलने के लिए निम्नलिखित क्वेरी का उपयोग करें। अन्य सभी आदेश समान हैं:

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

अद्यतन : 8.0.15 पर (शायद उस संस्करण से पहले ही) PASSWORD () फ़ंक्शन काम नहीं करता है, जैसा कि नीचे दी गई टिप्पणियों में बताया गया है। आपको उपयोग करना होगा:

UPDATE mysql.user SET authentication_string='password' WHERE User='root';


24
MySQL 5.7 के बाद, कॉलम नाम बदल गया है। आपको UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';इसके बजाय उपयोग करने की आवश्यकता होगी ।
कार्लोस पी।

सर उठाने के लिए धन्यवाद। मैं अपने उत्तर को अपने अनुसार दर्शाने के लिए संपादित करूँगा।
स्कॉट

8
यह भी लगता है कि PASSWORD () फ़ंक्शन को हटा दिया गया है और आपको बस 'password'समानता के दाईं ओर रखना चाहिए
kvan

6
यदि आप हालांकि लॉग इन नहीं कर सकते हैं, तो यह कैसे मदद करता है?
जेक एन

11
इन चरणों का पालन करने के बाद। जब मैंने अपने नए पासवर्ड के साथ फिर से लॉगिन करने का प्रयास कियाERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
toaw

197

यदि आपको रूट के लिए निर्धारित पासवर्ड याद नहीं है और इसे रीसेट करने की आवश्यकता है, तो इन चरणों का पालन करें:

  1. Mysqld सर्वर बंद करो, यह प्रति इंस्टॉल बदलता रहता है
  2. विशेषाधिकार बाइपास के साथ सर्वर को सुरक्षित मोड में चलाएं

sudo mysqld_safe --skip-grant-tables;

  1. डेटाबेस से कनेक्ट एक नई विंडो में, एक नया पासवर्ड सेट करें और अनुमतियों को छोड़ दें और छोड़ दें:

mysql -u root

MySQL 5.7 से पुराने MySQL के लिए:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

MySQL 5.7+ उपयोग के लिए:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

ताज़ा करें और छोड़ें:

FLUSH PRIVILEGES;

\q

  1. सुरक्षित मोड सर्वर को बंद करें और अपना नियमित सर्वर वापस शुरू करें। नया पासवर्ड अब काम करना चाहिए। मेरे लिए एक जादू की तरह काम किया :)

4
यह सही था धन्यवाद! Mac OSx Mavericks (2014) में sudo / Library / StartupItems / MySQLCOM / MySQL स्टॉप का उपयोग करें। स्टार्ट | रिस्टार्ट
क्रिस एडम्स

2
passwordauthentication_stringअब होना चाहिए ।
zx1986

MySQL 5.7 के बाद, यह होना चाहिए UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';, जैसे @Scott ने कहा।
zx1986

धन्यवाद जोड़ देगा कि
radtek

1
MacOSX पर जब mySQL "पसंद" फलक "विकल्प के साथ स्थापित किया गया है (एप्पल मेनू -> सिस्टम प्राथमिकताएं ...), मैंने पाया कि मैं पहली बार ऊपर की पूरी चरण 1 को वरीयता फलक का उपयोग कर बंद mySQL पड़ा इस्तेमाल करते हैं। sudo killऐसा नहीं किया मैक OSx के रूप में काम स्वचालित रूप से एक नया msql तुरंत relaunch होगा। एक बार जब मैं वरीयता फलक का उपयोग कर mysql बंद कर दिया, मैं मैन्युअल रूप से चला सकते हैंmysqld_safe --skip-grant-tables
toddcscar

85

एक बार जब आप MySQL स्थापित कर लेते हैं, तो आपको "रूट" पासवर्ड स्थापित करना होगा। यदि आप रूट पासवर्ड स्थापित नहीं करते हैं, तो, ठीक है, कोई रूट पासवर्ड नहीं है, और आपको लॉग इन करने के लिए पासवर्ड की आवश्यकता नहीं है।

तो, यह कहा जा रहा है, आपको एक रूट पासवर्ड स्थापित करने की आवश्यकता है।

टर्मिनल का उपयोग करके निम्नलिखित दर्ज करें:

स्थापना: रूट यूजर पासवर्ड सेट करें:

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

यदि आपने कोई गलती की है, या रूट पासवर्ड को बदलने की आवश्यकता है, तो निम्न का उपयोग करें:

रूट पासवर्ड बदलें:

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit

5
उन लोगों के लिए जिनके पास MySQL 5.7 है, आपको update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';set password=...
pdm

66

Mysql वेबसाइट में दिए गए निर्देश बहुत स्पष्ट हैं, जो ऊपर बताए गए हैं

  1. $ sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';
  6. mysql> exitया Ctrl + z
  7. $ sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. नया पासवर्ड यानी MyNewPass डालें

संदर्भ: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


2
मैक ओएस 10.12.6 में, यह 2 कमांड ERROR के
diEcho

यह पता लगाने के लिए धन्यवाद कि दस्तावेज कहां से मिले। यह मैक पर थोड़ा भ्रामक है जब आप sudo लॉन्चरल अनलोड -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist और sudo लॉन्चर अनलोड -F /Library/LaunchDaemons/com.oracle.ossacle का उपयोग कर सकते हैं। .mysql.mysqld.pl रोकने और mysql शुरू करने के लिए। Sudo /usr/local/mysql/support-files/mysql.server रोक का उपयोग करना बेहतर दृष्टिकोण की तरह लगता है।
डैनियल

59
  1. Mysqld सर्वर बंद करो।

    • मैक OSX: System Preferences > MySQL>Stop MySQL Server
    • लिनक्स (टर्मिनल से): sudo systemctl stop mysqld.service
  2. विशेषाधिकार बाईपास के साथ सर्वर को सुरक्षित मोड में शुरू करें

    • टर्मिनल से: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. एक नई टर्मिनल विंडो में:

    • sudo /usr/local/mysql/bin/mysql -u root
  4. यह mysql कमांड लाइन को खोलेगा। यहां से प्रवेश करें:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. Mysqld सर्वर को फिर से बंद करें और इसे सामान्य मोड में पुनरारंभ करें।

    • मैक OSX (टर्मिनल से): sudo /usr/local/mysql/support-files/mysql.server restart
    • लिनक्स टर्मिनल: sudo systemctl restart mysqld

1
हाई सिएरा पर 5.7.23 चलाने के लिए, यह पूरी तरह से काम करता है। धन्यवाद।
डैनियल

MySQL 8.0.11 में, चौथे चरण में सेट फ़ंक्शन को हटा दिया गया था। आप यहां चेक करते हैं, यह एक काम है। stackoverflow.com/a/52579886/621951
गुने गुल्लेकिन

22

नए माईस्क्लर 5.7 के लिए किसी कारण से मयस्कल के बिन आदेश शेल से जुड़े नहीं हैं:

  1. स्थापित करने के बाद मैक को पुनरारंभ करें।

  2. मैसूर शुरू करें:

    सिस्टम वरीयताएँ> मैसकल> प्रारंभ बटन

  3. टर्मिनल में Mysql स्थापित फ़ोल्डर पर जाएं:

    $ cd /usr/local/mysql/bin/

  4. मैसकल तक पहुँच:

    $ ./mysql -u root -p

और इंस्टॉलेशन के लिए दिया गया प्रारंभिक पासवर्ड दर्ज करें।

  1. मैसूर टर्मिनल परिवर्तन पासवर्ड में:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';


16

टर्मिनल में, mysql -u root -pरिटर्न लिखें और हिट करें। वर्तमान mysql पासवर्ड दर्ज करें जिसे आपने नोट किया होगा। और पासवर्ड सेट करें SET PASSWORD = PASSWORD('new_password');

इस दस्तावेज़ को देखें यहां अधिक जानकारी के लिए।


10

यदि आप MySQL रूट पासवर्ड भूल गए हैं, तो याद नहीं कर सकते या तोड़ना नहीं चाहते हैं ... आप तब तक लिनक्स या OS X में कमांड लाइन से mysql डेटाबेस पासवर्ड को रीसेट कर सकते हैं जब तक आप बॉक्स का रूट यूजर पासवर्ड जानते हैं। आप शूरू हो गए:

(1) MySQL बंद करो

sudo /usr/local/mysql/support-files/mysql.server stop

(2) इसे सुरक्षित मोड में शुरू करें:

sudo mysqld_safe --skip-grant-tables

(3) यह एक चालू कमांड होगा जब तक कि यह प्रक्रिया पूरी न हो जाए, एक और शेल / टर्मिनल विंडो खोलें , पासवर्ड के बिना लॉग इन करें:

mysql -u root

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

ऊपर दिए गए UPDATE कमांड में 'पासवर्ड' को अपने नए पासवर्ड से बदलें, उद्धरण चिह्नों को रखना सुनिश्चित करें

(४) बचाओ और खूब

FLUSH PRIVILEGES;

\q

(5) MySQL प्रारंभ करें

sudo /usr/local/mysql/support-files/mysql.server start

5

जब मैंने ओएस एक्स योसेमाइट स्थापित किया, तो मुझे मैसकल के साथ समस्या हुई। मैंने बहुत सारे तरीके आजमाए लेकिन कोई काम नहीं किया। मैंने वास्तव में एक बहुत आसान तरीका पाया। इसे आज़माएं।

  1. सु विशेषाधिकार से टर्मिनल में प्रवेश करें।

sudo su

  1. mysql बंद करो

sudo /usr/local/mysql/support-files/mysql.server stop

  1. सुरक्षित मोड में शुरू करें:

sudo mysqld_safe --skip-grant-tables

  1. एक और टर्मिनल खोलें, सु विशेषाधिकार के रूप में लॉग इन करें, पासवर्ड के बिना mysql में लॉग इन करें

mysql -u root

  1. पासवर्ड बदलें

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

  1. फ्लश विशेषाधिकारों

FLUSH PRIVILEGES;

  1. अब तुम हो गए

आपका बहुत धन्यवाद। मैं इसके लिए थोड़ा संघर्ष कर रहा था। क्या यह mysql के नवीनतम संस्करणों पर एक नई बात है?
jpbourbon

5

मौजूदा उत्तरों में बताए गए तरीके mysql 5.7.6 या उसके बाद के लिए काम नहीं करते हैं। Mysql प्रलेखन के अनुसार यह अनुशंसित तरीका है।

B.5.3.2.3 रूट पासवर्ड रीसेट करना: सामान्य निर्देश

MySQL 5.7.6 और बाद में:

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

संदर्भ: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


3

यदि आप अपना पासवर्ड याद नहीं रख सकते हैं, तो @ radtek के जवाब ने मेरे मामले में काम किया, सिवाय इसके कि मैंने MySQL को ब्रू का उपयोग करके सेट किया था, जिसका मतलब था कि उसके उत्तर के चरण 1 और 2 को बदलना होगा:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

नोट: की कमी sudo


3

मुझे लगता है कि यह काम करना चाहिए:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'

(ध्यान दें कि अगर आपने रूट नहीं किया है तो आपको अपने यूज़रनेम से रूट को बदलना चाहिए)


2

MySQL सर्वर को रोकना

sudo /usr/local/mysql/support-files/mysql.server stop

MySQL को सुरक्षित मोड में शुरू करना

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

रूट पासवर्ड बदलना

/usr/local/mysql/bin/mysql -u root

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

परिक्षण

Daud /usr/local/mysql/bin/mysql -u root

अब MySQL का उपयोग शुरू करने के लिए नया पासवर्ड दर्ज करें।


2

यह वास्तव में मेरे लिए काम कर रहा है:

  1. सुनिश्चित करें कि कोई अन्य MySQL प्रक्रिया नहीं चल रही है। इसकी जांच निम्न करें:

     a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
  2. कमांड के साथ MySQL शुरू करें:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. हर उपयोगकर्ता के लिए पासवर्ड क्रमशः कॉलम यूजर और ऑथेंटिकेशन_स्ट्रिंग के तहत mysql.user तालिका में संग्रहीत किया जाता है। हम तालिका को इस प्रकार अपडेट कर सकते हैं:

    UPDATE mysql.user SET authentication_string='your_password' where User='root'

2

MacOSX DMG इंस्टॉलर से 5.7.26 के साथ macOS 10.14+।

अन्य उपयोगकर्ताओं द्वारा पोस्ट की गई UPDATE कमांड का उपयोग करने का प्रयास करते समय निम्न त्रुटि होती है:

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

इंस्टॉलर ओपन टर्मिनल द्वारा आपके लिए प्रस्तुत पासवर्ड की प्रतिलिपि बनाएँ और निम्न कार्य करें:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';


2

MySQL 8.0.15 + को संदर्भित करने के लिए, पासवर्ड () फ़ंक्शन उपलब्ध नहीं है। नीचे दिए गए कमांड का उपयोग करें।

कृपया उपयोग करें

UPDATE mysql.user SET authentication_string='password' WHERE User='root';

1

यदि आप अपना पासवर्ड भूल गए हैं या इसे अपने mysql में बदलना चाहते हैं:

  1. अपना टर्मिनल शुरू करें और दर्ज करें:
sudo su
  1. आपके लिए पास सिस्टम दर्ज करें
  2. अपने mysql को रोकें:
sudo /usr/local/mysql/support-files/mysql.server stop
  1. इस विंडो को खोलें OPEN, दूसरी टर्मिनल विंडो चलाएं और यहां दर्ज करें:
mysql -u root
  1. और mysql के लिए अपना पासवर्ड बदलें:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

जहाँ "new_password" - आपका नया पास। आपको mysql के लिए पुराने पास की आवश्यकता नहीं है।

  1. फ्लश, छोड़ें और अपना नया पास चेक करें:
FLUSH PRIVILEGES;
  1. सभी विंडो बंद करें और mysql के लिए अपना नया पास जांचें। सौभाग्य।

1

MySQL 8. के ​​लिए बहुत कुछ बदल गया है। मैंने MySQL 8.0 के निम्न संशोधन को पाया है "रूट पासवर्ड को कैसे रीसेट करें" प्रलेखन मैक एक्स के साथ काम करता है।

$HOME/mysql.root.txtरूट पासवर्ड को अपडेट करने के लिए SQL के साथ एक अस्थायी फ़ाइल बनाएँ :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

यह प्रमाणीकरण प्लगइनmysql_native_password से बचने के लिए उपयोग करता है 'caching_sha2_password' लोड नहीं किया जा सकता है त्रुटि , जो मुझे विकल्प से बाहर निकलने पर मिलती है।

सर्वर बंद करो, --init-fileरूट पासवर्ड सेट करने के लिए एक विकल्प के साथ शुरू करें , फिर सर्वर को पुनरारंभ करें:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start


1

आइए हम इस समाधान को जोड़ते हैं जो मेरे लैपटॉप पर काम करता है!

Osx Mojave के साथ मैक 10.14.5

मैसूर 8.0.17 होमब्रे के साथ स्थापित किया गया था

  • मैं mysql के रास्ते का पता लगाने के लिए निम्न कमांड चलाता हूं

    brew info mysql

  • एक बार रास्ता ज्ञात हो जाने के बाद, मैं इसे चलाता हूं:

    /usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table

  • एक और टर्मिनल में मैं चलाता हूं:

    mysql -u root

  • उस टर्मिनल के अंदर, मैंने रूट पासवर्ड का उपयोग करके बदल दिया:

    update mysql.user set authentication_string='NewPassword' where user='root';

  • और खत्म करने के लिए मैं दौड़ता हूं:

    FLUSH PRIVILEGES;

और वॉइसिला पासवर्ड रीसेट कर दिया गया था।

संदर्भ:


1

आप open Apple मेनू पर क्लिक करके और सिस्टम वरीयताएँ खोलकर मैक पर mysql को मैन्युअल रूप से बंद कर सकते हैं। "MySQL" वरीयता पैनल चुनें, फिर Mac पर MySQL सर्वर को रोकने के लिए "Stop MySQL सर्वर" बटन पर क्लिक करें।

अपने mysql को रोकने के बाद आपको इन चरणों का पालन करना होगा।

  • आपको स्किप-अनुदान-टेबल मोड में mysql शुरू करना होगा

$ sudo /usr/local/mysql/support-files/mysql.server प्रारंभ --स्किप-अनुदान-टेबल

  • अपने टर्मिनल में, इस आदेश को मौजूदा मौजूदा स्वादों में दर्ज करें

/ usr / स्थानीय / mysql / bin / mysql mysql> FLUSH PRIVILEGES;

  • अब आपको यूजर पासवर्ड बदलने की जरूरत है

mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'newpassword';

mysql> बाहर निकलें

तब आप and Apple मेनू पर जा सकते हैं और सिस्टम प्राथमिकताएं खोल सकते हैं। "MySQL" वरीयता पैनल चुनें, फिर Mac पर MySQL सर्वर को रोकने के लिए "Stop MySQL सर्वर" बटन पर क्लिक करें।

अंत में आप फिर से menu Apple मेनू पर जा सकते हैं और सिस्टम प्राथमिकताएं खोल सकते हैं। "MySQL" वरीयता पैनल चुनें, फिर मैक पर MySQL सर्वर शुरू करने के लिए "स्टार्ट MySQL सर्वर" बटन पर क्लिक करें।

उम्मीद है की वो मदद करदे


1

पिछली टिप्पणियों में से कोई भी मेरे मैक पर समस्या को हल नहीं करता है। मैंने नीचे दिए गए आदेशों का उपयोग किया और यह काम किया।

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root

0
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

मैं किसी भी समय यह करने की आवश्यकता है कि मेरी मैकबुक पुनः आरंभ हो। व्यक्तिगत संदर्भ के लिए इसे पोस्ट करना, उम्मीद है कि यह किसी और को भी मदद करता है।

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