Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

CentOS7 पर MySQL रूट अकाउंट का पासवर्ड कैसे बदलें?

आप MySQL का किस संस्करण का उपयोग कर रहे हैं? मैं 5.7.10 का उपयोग कर रहा हूं और रूट के रूप में लॉग ऑन करने में भी यही समस्या थी

2 मुद्दे हैं - मैं शुरू करने के लिए रूट के रूप में लॉग इन क्यों नहीं कर सकता, और मैं रूट पासवर्ड रीसेट करने के लिए mySQL प्रारंभ करने के लिए 'mysqld_safe' का उपयोग क्यों नहीं कर सकता।

मेरे पास इंस्टॉलेशन के दौरान रूट पासवर्ड सेट करने का कोई जवाब नहीं है, लेकिन यहां आप रूट पासवर्ड रीसेट करने के लिए क्या करते हैं

संपादित करें संस्थापन पर आरंभिक रूट पासवर्ड को चलाकर पाया जा सकता है

grep 'temporary password' /var/log/mysqld.log

http://dev.mysql.com /doc/refman/5.7/hi/linux-installation-yum-repo.html

  1. systemd अब इसका उपयोग mysqld_safe . के बजाय mySQL की देखभाल के लिए किया जाता है (यही कारण है कि आपको -bash: mysqld_safe: command not found . मिलता है त्रुटि - यह स्थापित नहीं है)

  2. user तालिका संरचना बदल गई है।

तो रूट पासवर्ड रीसेट करने के लिए, आप अभी भी --skip-grant-tables के साथ mySQL प्रारंभ करते हैं विकल्प और अपडेट करें user तालिका, लेकिन आप इसे कैसे करते हैं यह बदल गया है।

1. Stop mysql:
systemctl stop mysqld

2. Set the mySQL environment option 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3. Start mysql usig the options you just set
systemctl start mysqld

4. Login as root
mysql -u root

5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use 
   mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning

6. Stop mysql
systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:
systemctl start mysqld

Try to login using your new password:
7. mysql -u root -p

संदर्भ

जैसा कि यह http://dev.mysql.com पर कहता है /doc/refman/5.7/hi/mysqld-safe.html ,

जो आपको http://dev पर ले जाता है .mysql.com/doc/refman/5.7/hi/server-management-using-systemd.html जहां यह systemctl set-environment MYSQLD_OPTS= का उल्लेख करता है पृष्ठ के निचले भाग की ओर।

पासवर्ड रीसेट कमांड http:// के नीचे हैं। dev.mysql.com/doc/refman/5.7/hi/resetting-permissions.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL तालिका में पंक्तियों को पुन:व्यवस्थित करें

  2. पीडीओ यूटीएफ -8 एन्कोडिंग मुद्दा?

  3. किसी स्थिति में दो फ़ील्ड/कॉलम की तुलना कैसे करें?

  4. SQL क्वेरीज़ में दिनांक सीमाओं के लिए DatedIFF() या BETWEEN

  5. एक MySQL तालिका को दूसरे के मानों के साथ अपडेट करें