मुझे एक उपाय सूझा!
जब चरण 2 पर रूट पासवर्ड रीसेट कर रहे हों), तो इसके लिए भी दूसरा प्लगइन बदलें mysql_native_password
:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
इसने मुझे सफलतापूर्वक लॉग इन करने की अनुमति दी!
पूर्ण कोड समाधान
1. बैश कमांड चलाएं
1. सबसे पहले, इन bash कमांड को रन करें
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
2. उसके बाद mysql कमांड => कॉपी पेस्ट को मैन्युअल रूप से cli पर चलाएँ
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
3. अधिक बैश कमांड चलाएं
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
4. सॉकेट मुद्दा (आपकी टिप्पणियों से)
जब आप सॉकेट त्रुटि देखते हैं , तो एक समुदाय 2 संभावित समाधानों के साथ आता है:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(@Cerin को धन्यवाद)
या
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(@Peter Dvukhrechensky को धन्यवाद)
अंधा रास्तों और संभव बढ़त त्रुटियों
लोकलहोस्ट के बजाय 127.0.0.1 का उपयोग करें
mysql -uroot # "-hlocalhost" is default
"गुम फ़ाइल" या एसएलटी त्रुटि हो सकती है।
mysql -uroot -h127.0.0.1
बेहतर काम करता है।
सॉकेट समस्या को छोड़ दें
मुझे mysqld.sock
फ़ाइल बनाने , एक्सेस अधिकार बदलने या इसे सिम्लिंक करने के कई तरीके मिले हैं । यह सब के बाद का मुद्दा नहीं था।
my.cnf
फ़ाइल को छोड़ें
मुद्दा भी नहीं था। यदि आप निश्चित नहीं हैं, तो यह आपकी मदद कर सकता है ।