मैं अपना MySQL उपयोगकर्ता नाम और पासवर्ड कैसे पुनर्प्राप्त करूं?

मैंने अपना MySQL उपयोगकर्ता नाम और पासवर्ड खो दिया। मैं इसे दुबारा कैसे प्राप्त करूं?

0
ro fr bn

9 उत्तर

MySQL प्रक्रिया को रोकें।

     

MySQL प्रक्रिया को --skip-grant-table विकल्प के साथ प्रारंभ करें।

     

MySQL कंसोल क्लाइंट को -u रूट विकल्प के साथ प्रारंभ करें।

सभी उपयोगकर्ताओं की सूची;

SELECT * FROM mysql.user;

पासवर्ड रीसेट;

UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

लेकिन भूलें को

MySQL प्रक्रिया को रोकें

     

सामान्य रूप से MySQL प्रक्रिया प्रारंभ करें (यानी --skip-grant-table विकल्प के बिना)

जब आपने काम ख़त्म कर लिया हो। अन्यथा, आपके डेटाबेस की सुरक्षा से समझौता किया जा सकता है।

0
जोड़ा
@Xenph, आप क्यों कहते हैं " MySQL कंसोल क्लाइंट को -u रूट विकल्प के साथ प्रारंभ करें "? -u को - skip-grant-table के साथ प्रारंभ होने पर ऐसा करने में कोई बात नहीं है।
जोड़ा लेखक Pacerier, स्रोत
MySQL 5.7। * में, mysql.user में कोई कॉलम नहीं है जिसे password कहा जाता है, इसके बजाय authentication_string का उपयोग करें।
जोड़ा लेखक whiteletters in blankpapers, स्रोत
रूट MySQL पासवर्ड रीसेट करने के लिए dpkg-reconfigure mysql-server-5.5 कमांड का उपयोग करने का महत्व क्या है?
जोड़ा लेखक phillipsK, स्रोत
मेरा एसक्यूएल 5.5। चयन कमांड एन्क्रिप्टेड पासवर्ड दिखाता है। मैं वास्तविक पासवर्ड कैसे देखूं?
जोड़ा लेखक testerjoe2, स्रोत
लगता है कि आपको सामान्य उपयोगकर्ताओं को रीसेट करने के लिए डिमन को पुनरारंभ करने की आवश्यकता नहीं है। बस "फ्लश प्राइवेट्स;" उपयोगकर्ता पासवर्ड अपडेट करने के बाद। - केवल रूट उपयोगकर्ता पासवर्ड रीसेट के लिए आवश्यक --skip-grant-tables! मानक उपयोगकर्ता रीसेट के लिए आमतौर पर इसकी अनुशंसा नहीं की जाएगी।
जोड़ा लेखक Amos Folarin, स्रोत
मैंने यह + stackoverflow.com/a/35277160/1604601 बहुत उपयोगी पाया
जोड़ा लेखक Alien Life Form, स्रोत

An improvement to the most useful answer here:

1] No need to restart the MySQL server
2] Security concern for a MySQL server connected to a network

MySQL सर्वर को पुनरारंभ करने की कोई आवश्यकता नहीं है।

पासवर्ड परिवर्तन के लिए mysql.user कथन अद्यतन के बाद FLUSH PRIVILEGES; का उपयोग करें।

FLUSH कथन सर्वर को अनुदान तालिका को स्मृति में पुनः लोड करने के लिए कहता है ताकि यह पासवर्ड परिवर्तन को नोटिस कर सके।

- skip-grant-options किसी को पासवर्ड के बिना और सभी विशेषाधिकारों के साथ कनेक्ट करने में सक्षम बनाता है। क्योंकि यह असुरक्षित है, आप शायद चाहें

रिमोट क्लाइंट को कनेक्ट होने से रोकने के लिए - skip-networking के संयोजन के साथ - skip-grant-table का उपयोग करें।

from: reference: resetting-permissions-generic

0
जोड़ा
महान सुधार
जोड़ा लेखक trusktr, स्रोत
@TinkingMonkey, क्या यह नहीं लगता है कि वर्तमान लॉग ऑन उपयोगकर्ता के पास mysql.user को संशोधित करने के लिए विशेषाधिकार हैं? अक्सर हालांकि, यह मामला नहीं है।
जोड़ा लेखक Pacerier, स्रोत

जबकि आप ब्रूटफोर्सिंग के बिना सीधे MySQL पासवर्ड पुनर्प्राप्त नहीं कर सकते हैं, तो एक और तरीका हो सकता है - यदि आपने डेटाबेस से कनेक्ट करने के लिए MySQL वर्कबेंच का उपयोग किया है, और क्रेडेंशियल्स को "वॉल्ट" में सहेज लिया है, तो आप सुनहरे हैं।

विंडोज़ पर, क्रेडेंशियल % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat में संग्रहीत हैं - CryptProtectData (बिना किसी अतिरिक्त एंट्रॉपी के)। डिक्रिप्टिंग आसान peasy है:

std::vector decrypt(BYTE *input, size_t length) {
    DATA_BLOB inblob { length, input };
    DATA_BLOB outblob;

    if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
            throw std::runtime_error("Couldn't decrypt");
    }

    std::vector output(length);
    memcpy(&output[0], outblob.pbData, outblob.cbData);

    return output;
}

या आप स्रोत के लिए यह दान कोडर थ्रेड देख सकते हैं + एक त्वरित और गंदे कार्यान्वयन के निष्पादन योग्य।

0
जोड़ा
लेकिन अपेक्षाकृत बोलते हुए, बहुत कम लोग वर्कबेंच का उपयोग कर रहे हैं।
जोड़ा लेखक Pacerier, स्रोत
वर्कबेंच के संग्रहीत उपयोगकर्ता नाम और पासवर्ड की जानकारी को पुनर्प्राप्त करने के लिए विजुअल स्टूडियो के साथ निर्माण के बाद एक और कार्यान्वयन किया जा सकता है: github.com/ wclear / MySQLWorkbenchPasswordViewer
जोड़ा लेखक wclear, स्रोत
यह सही था। मेरे MySQL वर्कबेंच वॉल्ट में संग्रहीत मेरे उपयोगकर्ता खाता पासवर्ड को पुनर्प्राप्त करने के लिए उल्लिखित थ्रेड स्नैमर पर स्रोत कोड के साथ एक exe है। यद्यपि उपयोगकर्ता तालिका को पढ़ने या अपडेट करने का अधिकार होने पर ये अन्य विधियां शायद काम भी करती हैं।
जोड़ा लेखक RobbZ, स्रोत

दुर्भाग्यवश आपका उपयोगकर्ता पासवर्ड अपरिहार्य है। इसे एक तरह से हैश के साथ धोया गया है, जो आपको नहीं पता कि अपरिवर्तनीय है। मैं ऊपर Xenph यान के साथ जाने की सलाह देते हैं और बस एक नया बनाते हैं।

आप मैन्युअल के लिए निम्न प्रक्रिया का भी उपयोग कर सकते हैं विंडोज पर किसी भी MySQL रूट खातों के लिए पासवर्ड रीसेट करना:

  1. व्यवस्थापक के रूप में अपने सिस्टम पर लॉग ऑन करें।
  2. यदि यह चल रहा है तो MySQL सर्वर को रोकें। एक सर्वर के लिए जो एक विंडोज सेवा के रूप में चल रहा है, के लिए जाओ सेवा प्रबंधक:

Start Menu -> Control Panel -> Administrative Tools -> Services

फिर सूची में MySQL सेवा पाएं, और इसे रोकें। यदि आपका सर्वर है एक सेवा के रूप में नहीं चल रहा है, आपको इसे रोकने के लिए मजबूर करने के लिए कार्य प्रबंधक का उपयोग करने की आवश्यकता हो सकती है।

  1. Create a text file and place the following statements in it. Replace the password with the password that you want to use.

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    

    The UPDATE and FLUSH statements each must be written on a single line. The UPDATE statement resets the password for all existing root accounts, and the FLUSH statement tells the server to reload the grant tables into memory.

  2. Save the file. For this example, the file will be named C:\mysql-init.txt.
  3. Open a console window to get to the command prompt:

    Start Menu -> Run -> cmd

  4. Start the MySQL server with the special --init-file option:

    C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
    

    If you installed MySQL to a location other than C:\mysql, adjust the command accordingly.

    The server executes the contents of the file named by the --init-file option at startup, changing each root account password.

    You can also add the --console option to the command if you want server output to appear in the console window rather than in a log file.

    If you installed MySQL using the MySQL Installation Wizard, you may need to specify a --defaults-file option:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
    

    The appropriate --defaults-file setting can be found using the Services Manager:

    Start Menu -> Control Panel -> Administrative Tools -> Services

    Find the MySQL service in the list, right-click on it, and choose the Properties option. The Path to executable field contains the --defaults-file setting.

  5. After the server has started successfully, delete C:\mysql-init.txt.
  6. Stop the MySQL server, then restart it in normal mode again. If you run the server as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.

अब आप नए पासवर्ड का उपयोग कर रूट के रूप में MySQL से कनेक्ट करने में सक्षम होना चाहिए।

0
जोड़ा
@ जेक - उत्तर के लिए धन्यवाद। मैं इसे एक अंगूठे देना चाहता था लेकिन किसी कारण से स्टैक ओवरफ्लो मुझे प्रतिष्ठा बिंदुओं के कारण ऐसा करने की अनुमति नहीं देता है। आपकी व्याख्या "दुर्भाग्यवश आपका उपयोगकर्ता पासवर्ड अप्रत्याशित है। इसे एक तरह से हैश के साथ धोया गया है, जो आपको नहीं पता है कि अपरिवर्तनीय है" मेरी समझ की कुंजी थी क्यों मैंने Google पर जो कुछ भी पढ़ा, वह मुझे केवल बदलें मेरा पासवर्ड। अच्छे स्पष्टीकरण अकेले निर्देशों की तुलना में अधिक अंतर्दृष्टिपूर्ण हैं।
जोड़ा लेखक dsdsdsdsd, स्रोत
mysqld के बजाय आपका mysqld-nt क्यों है?
जोड़ा लेखक Pacerier, स्रोत
बीटीडब्ल्यू, क्या - init-file का एक गैर-फ़ाइल विकल्प है? (Mysql.exe के - execute कमांड के समान कुछ।)
जोड़ा लेखक Pacerier, स्रोत
वास्तव में उत्तर प्रश्न के लिए +1।
जोड़ा लेखक davmac, स्रोत

मौजूदा उपयोगकर्ता का उपयोग कर विंडोज सेमीडी से MySQL लॉग इन करें:

    

MySQL -u उपयोगकर्ता नाम -पी
            पासवर्ड दर्ज करें: ****

  

फिर निम्न आदेश चलाएं:

mysql> SELECT * FROM mysql.user;

उस प्रतिलिपि के बाद एन्क्रिप्टेड एमडी 5 पासवर्ड संबंधित उपयोगकर्ता के लिए और वेब पर कई ऑनलाइन पासवर्ड डिक्रिप्ट एप्लिकेशन उपलब्ध हैं। इस डिक्रिप्ट पासवर्ड का उपयोग करना और अगली बार लॉगिन के लिए इसका इस्तेमाल करें। या प्रवाह कमांड का उपयोग कर उपयोगकर्ता पासवर्ड अपडेट करें:

mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

फिर नए पासवर्ड और उपयोगकर्ता का उपयोग कर लॉगिन करें।

0
जोड़ा

हालांकि ओप के प्रश्न की सख्त, तार्किक, कंप्यूटर विज्ञान की व्याख्या के लिए दोनों "मैं अपना MySQL उपयोगकर्ता नाम कैसे पुनर्प्राप्त करूं" और "पासवर्ड" की आवश्यकता होगी - मैंने सोचा या व्याख्या को संबोधित करने के लिए किसी के लिए यह उपयोगी हो सकता है। दूसरे शब्दों में ...

1) मैं अपना MySQL उपयोगकर्ता नाम कैसे प्राप्त करूं?

या

2) पासवर्ड

ऐसा बाद की स्थिति को पहले से ही संबोधित किया गया है, इसलिए मैं इससे परेशान नहीं होगा। निम्नलिखित मामले के लिए एक समाधान है "मैं अपने MySQL उपयोगकर्ता नाम को कैसे पुनः प्राप्त कर सकता हूं"। HIH।

अपने MySQL उपयोगकर्ता नाम को खोजने के लिए MySQL shell से निम्न आदेश चलाएं ...

Mysql.user से उपयोगकर्ता चुनें;

यह सभी MySQL उपयोगकर्ताओं की एक तालिका मुद्रित करेगा।

0
जोड़ा
यह एक देर का उत्तर है और आपको केवल तभी पोस्ट करना चाहिए यदि आपका समाधान पहले ही पोस्ट या स्वीकृत से स्पष्ट रूप से अलग है। यह इस मामले में नहीं है, विशेष रूप से आपका उत्तर स्वीकृत एक को डुप्लिकेट करता है।
जोड़ा लेखक m.cekiera, स्रोत

यदि आपके पास सर्वर पर रूट पहुंच है जहां MySQL चल रहा है तो आपको इस आदेश का उपयोग करके MySQL सर्वर को रोकना चाहिए

sudo service MySQL stop

अब इस कमांड का उपयोग कर MySQL शुरू करें

sudo /usr/sbin/mysqld --skip-grant-tables  --skip-networking &

अब आप MySQL का उपयोग कर लॉगिन कर सकते हैं

sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Full instructions can be found here http://www.techmatterz.com/recover-mysql-root-password/

0
जोड़ा

यदि आपके पास ओडीबीसी सेट अप होता है, तो आप ओडीबीसी कॉन्फ़िगरेशन फ़ाइल से पासवर्ड प्राप्त कर सकते हैं। यह लिनक्स के लिए /etc/odbc.ini में है और विंडोज़ में रजिस्ट्री में सॉफ़्टवेयर / ओडीबीसी फ़ोल्डर में है (कई हैं - इसमें कुछ शिकार हो सकता है)

0
जोड़ा

बिना समय के इसे करो

डीबीएमएस से कनेक्ट करने के लिए टर्मिनल में निम्न आदेश चलाएं (आपको रूट पहुंच की आवश्यकता है):

sudo MySQL -u root -p;

लक्षित उपयोगकर्ता का अद्यतन पासवर्ड चलाएं (मेरे उदाहरण के लिए उपयोगकर्ता नाम mousavi है और यह पासवर्ड 123456 होना चाहिए):

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';  

इस बिंदु पर आपको परिवर्तन लागू करने के लिए फ्लश करने की आवश्यकता है:

FLUSH PRIVILEGES;

किया हुआ! आपने इसे बिना किसी स्टॉप के किया या MySQL सेवा को पुनरारंभ करें।

0
जोड़ा