Ada begitu banyak jawaban di luar sana yang mengatakan untuk menginstal ulang mysql atau menggunakan beberapa kombo
mysqld_safe --skip-grant-tables
dan / atau
UPDATE mysql.user SET Password=PASSWORD('password')
dan / atau sesuatu yang lain ...
... Tidak ada yang berhasil untuk saya
Inilah yang berhasil bagi saya, di Ubuntu 18.04, dari atas
Dengan kredit khusus untuk ini jawab untuk menggali saya keluar dari frustrasi ini ...
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
Perhatikan baris yang berbunyi:
user = debian-sys-maint
password = blahblahblah
Kemudian:
$ 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
Atau:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Atau:
// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
Kemudian:
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!