2012-01-09 14 views
18

मैंने redhat linux पर MySQL सर्वर 5 स्थापित किया है। मैं रूट के रूप में लॉगिन नहीं कर सकता इसलिए मैं रूट पासवर्ड नहीं बदल सकता।mysql रूट पासवर्ड को कैसे बदलें

mysql -u root -p 
Enter password: <blank> 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' 
(using password: NO) 

मैं इस तरह एक स्थापित करने के लिए प्रयास करते हैं:

mysqladmin -u root password 'newpass' 

मैं एक त्रुटि मिलती है: एक रूट पासवर्ड सेट है

mysqladmin: connect to server at 'localhost' failed 
error: 'Access denied for user 'root'@'localhost' 
(using password: NO)' 

के रूप में अगर।

मैं भी पासवर्ड का उपयोग कर (here वर्णित)

/sbin/service mysqld start --skip-grant-tables 

और फिर बनाने को रीसेट की कोशिश की है:

mysql> UPDATE mysql.user SET Password=PASSWORD('newpass')  
-> WHERE User='root'; 
ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user' 

मैं भी स्थापना हटाई mysql सर्वर (वाह का प्रयोग करके) और फिर इसे पुनर्स्थापित लेकिन यह है कि कोई सहायता नहीं की।

मैं रूट पासवर्ड को रीसेट करने के लिए कैसे मजबूर करूं?

+0

चेक कि आपके mysqld कमांड के साथ, स्थापित किया गया है सक्षम है, और पर: 'sudo सेवा mysqld status'। –

उत्तर

4

मैंने MySQL स्थापना को हटा दिया और डेटा फ़ाइलों को हटा दिया, और फिर इसे पुनः स्थापित किया।

तब मैं रूट पासवर्ड सेट करने में सक्षम था। एक बार जब आप रूट पासवर्ड को किसी चीज़ पर सेट कर लेंगे। यदि आप इसे नहीं जानते हैं तो mysqladmin आपको इसे रीसेट करने नहीं देगा। https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

+1

क्या आप लिंक को सही कर सकते हैं कृपया – ihebiheb

6

रूट उपयोगकर्ता पासवर्ड डिफ़ॉल्ट रूप से एक खाली स्ट्रिंग है।

और (using password: NO) कहता है कि कोई पासवर्ड नहीं है।

क्या आप किसी अन्य सिस्टम से लॉगिन करने का प्रयास करते हैं? मुझे कल्पना है कि आप केवल रूट उपयोगकर्ता के रूप में ही लॉगिन कर सकते हैं।

+0

मैं आदेश mysql सर्वर में जड़ होने के लिए प्रणाली की जड़ होने के लिए neet करते हैं? – yossi

+0

मुझे यकीन नहीं है, लेकिन मुझे ऐसा नहीं लगता है। दुर्भाग्य से मैंने कभी भी redhat का उपयोग नहीं किया ... संपादित करें: लेकिन आप इसे क्यों नहीं देखते? – danijar

+0

ध्यान दें कि यदि आप कोई पासवर्ड के साथ प्रवेश करने का प्रयास करना चाहते हैं, तो आप सिर्फ 'पूरी तरह कमांड लाइन पर -p' निर्दिष्ट करने से बचना चाहिए। –

6

एक विकल्प UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root'; को फ़ाइल में सहेजना है और फिर --init-file=FILENAME के साथ mysqld मैन्युअल रूप से प्रारंभ करना है। एक बार सर्वर शुरू होने के बाद, इसे अपना पासवर्ड रीसेट करना चाहिए, और फिर आपको लॉग इन करने में सक्षम होना चाहिए। इसके बाद, आपको सर्वर को बंद करना चाहिए और इसे सामान्य रूप से प्रारंभ करना चाहिए।

+1

अच्छा प्रभु पी, क्यों करेंगे कोई एक ऐसा समाधान प्रदान करता है जो मुझे काम करने के लिए मिला। एक init sql फ़ाइल एकमात्र तरीका था जिसे मैं mysql रूट उपयोगकर्ता पासवर्ड को ओवरराइट कर सकता था और इसका उपयोग करने में सक्षम था। यह एक शर्म की बात है कि आपको ताजा स्थापित सॉफ्टवेयर पर ऐसे परिचालनों में फॉलबैक करने की ज़रूरत है, फिर भी ** विश्वसनीय ** कामकाज होना अच्छा है। –

+2

'sudo mysql सेवा रोकें और echo" mysql.user अद्यतन पासवर्ड = पासवर्ड ('newpass') जहां उपयोगकर्ता = 'रूट'; " > /tmp/reset.sql && sudo /etc/init.d/mysql प्रारंभ करें --init-file =/tmp/reset.sql' –

3

अपने आदेश से -p निकालें:

इसे रीसेट करने के लिए, आप कैसे mysqld निष्पादित किया जाता है से अधिक स्वामित्व है, और यह एक init फ़ाइल को खिलाने के रूट पासवर्ड बदलने के लिए करने के लिए मिल गया है। पासवर्ड के लिए प्रॉम्प्ट को मजबूर करता है।

उपयोग: mysql -u root

यह आपकी समस्या का समाधान होगा।

+2

यह केवल तभी काम करता है जब कोई रूट पासवर्ड न हो। यदि रूट पासवर्ड सेट किया गया है, तो इसे प्रदान किया जाना चाहिए। –

2

इससे मुझे विंडोज़ पर MySQL सर्वर 5.6 के साथ मदद मिली। प्रशासक के रूप में अपने सिस्टम पर

  1. प्रवेश करें: मेरे लिए यह "C:\Program Files\mysql\MySQL Server 5.6\bin\mysqld.exe" था क्या आप जहां स्थापित किया है सर्वर को इंगित करने के mysqld पथ बदल सुनिश्चित करें।

  2. यदि यह चल रहा है तो MySQL सर्वर को रोकें।एक सर्वर के लिए जो विंडोज सेवा के रूप में चल रहा है, सेवा प्रबंधक पर जाएं: प्रारंभ मेनू से, नियंत्रण कक्ष का चयन करें, फिर व्यवस्थापकीय उपकरण, फिर सेवाएं। सूची में MySQL सेवा ढूंढें और इसे रोकें।

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

  3. निम्नलिखित कथन वाली एक टेक्स्ट फ़ाइल बनाएं। पासवर्ड को उस पासवर्ड से बदलें जिसे आप उपयोग करना चाहते हैं।

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

    अद्यतन एक ही पंक्ति पर अद्यतन और फ्लश विवरण लिखें। अद्यतन विवरण सभी रूट खातों के लिए पासवर्ड रीसेट करता है, और FLUSH कथन सर्वर को अनुदान तालिका को स्मृति में पुनः लोड करने के लिए कहता है ताकि यह पासवर्ड परिवर्तन को नोटिस कर सके।

  4. फ़ाइल को सहेजें। इस उदाहरण के लिए, फ़ाइल का नाम C:\mysql-init.txt रखा जाएगा।

  5. कमांड प्रॉम्प्ट पर जाने के लिए एक कंसोल विंडो खोलें: स्टार्ट मेनू से, रन का चयन करें, फिर कमांड चलाने के लिए cmd दर्ज करें।

  6. प्रारंभ विशेष --init-फ़ाइल विकल्प के साथ MySQL सर्वर (ध्यान दें कि विकल्प मान में बैकस्लैश दोगुनी है):

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

    आप सी की तुलना में एक स्थान दूसरे से MySQL इंस्टॉल किया है: \ mysql, तदनुसार आदेश समायोजित करें।

    सर्वर प्रत्येक रूट खाता पासवर्ड को बदलने, स्टार्टअप पर --init-file विकल्प द्वारा नामित फ़ाइल की सामग्री निष्पादित करता है।

    यदि आप लॉग फ़ाइल की बजाय कंसोल विंडो में सर्वर आउटपुट दिखाना चाहते हैं तो आप कमांड को कंसोल विकल्प भी जोड़ सकते हैं।

    आप MySQL स्थापना विज़ार्ड का उपयोग कर MySQL स्थापित हैं, तो आप एक --defaults-फ़ाइल विकल्प निर्दिष्ट करने की आवश्यकता हो सकता है:

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

    उचित --defaults-फ़ाइल सेटिंग सेवा प्रबंधक का उपयोग कर पाया जा सकता है: स्टार्ट मेनू से, नियंत्रण कक्ष, फिर व्यवस्थापकीय उपकरण, फिर सेवाओं का चयन करें। सूची में MySQL सेवा पाएं, राइट-क्लिक करें, और गुण विकल्प चुनें। निष्पादन योग्य फ़ील्ड के पथ में --defaults-file सेटिंग शामिल है।

  7. सर्वर सफलतापूर्वक प्रारंभ होने के बाद, C: \ mysql-init.txt हटाएं।

http://docs.oracle.com/cd/E17952_01/refman-5.5-en/resetting-permissions.html

2

कोशिश करते हैं:

mysql -u root 

और उसके बाद:

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

mysql> FLUSH PRIVILEGES; 

मेरे लिए ठीक काम किया!

2

शायद थोड़ी देर हो चुकी यहाँ, लेकिन यहाँ मैं क्या किया है:

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

# mysqld_safe --init-file=resetpass.sh 

# service mysqld start --skip-grant-tables 

# mysql -u root -p 

पारित दर्ज

mysql > change root pass ; flush privs; 

छोड़ने

# restart mysql service 
:

फ़ाइल resetpass.sh जो है बनाने

MySQL v Iersion का उपयोग कर रहा था 5.1.73 सेंटोस 6

0

डॉक्स के मुताबिक, MySQL 5.7 में अस्थायी पासवर्ड /var/log/mysqld में डाल दिया गया है, लेकिन यह स्पष्ट रूप से 5.6 में मामला नहीं है।

आरएचईएल 6.7 पर स्थापित MySQL संस्करण 5.6 के साथ, मुझे अंततः इंस्टॉलेशन के दौरान अस्थायी रूट पासवर्ड सेट फ़ाइल /root/.mysql_secret में रखा गया था।

संबंधित मुद्दे