वहाँ बहुत सारे उत्तर हैं जो कहते हैं कि mysql को फिर से स्थापित करें या कुछ कॉम्बो का उपयोग करें
mysqld_safe --skip-grant-tables
और/या
UPDATE mysql.user SET Password=PASSWORD('password')
और / या कुछ और ...
... इसमें से कोई भी मेरे लिए काम नहीं कर रहा था
यहां मेरे लिए उबुंटू 18.04 पर ऊपर से काम किया गया है
विशेष श्रेय के साथ यह उत्तर मुझे इस पर निराशा से बाहर निकालने के लिए ...
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
उन पंक्तियों पर ध्यान दें जो पढ़ती हैं:
user = debian-sys-maint
password = blahblahblah
फिर:
$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from debian.cnf
mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| root | localhost | auth_socket |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; // When you don't have auto-commit switched on
या तो:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
या:
// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
फिर:
mysql> FLUSH PRIVILEGES;
mysql> COMMIT; // When you don't have auto-commit switched on
mysql> EXIT
$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!