अगर आपको MySql 5.7 में यही समस्या है। +:
Access denied for user 'root'@'localhost'
यह इसलिए है क्योंकि MySql 5.7 डिफ़ॉल्ट रूप से सॉकेट से जुड़ने की अनुमति देता है, जिसका अर्थ है कि आप बस से कनेक्ट करते हैं sudo mysql। यदि आप sql चलाते हैं:
SELECT user,authentication_string,plugin,host FROM mysql.user;
तो आप इसे देखेंगे:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
रूट और पासवर्ड के साथ कनेक्शन की अनुमति देने के लिए, फिर कमांड के साथ तालिका में मूल्यों को अपडेट करें:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;
फिर सेलेक्ट कमांड को फिर से रन करें और आप देखेंगे कि यह बदल गया है:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
और बस। sudo mysql_secure_installationकमांड को चलाने और पूरा करने के बाद आप इस प्रक्रिया को चला सकते हैं ।
मारीदब के लिए, का उपयोग करें
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');
पासवर्ड सेट करने के लिए। Https://mariadb.com/kb/en/set-password/ पर अधिक
SHOW GRANTS FOR rootक्वेरी में चलाएं , अपने प्रश्न में परिणाम पोस्ट करें।