Er zijn zoveel antwoorden die zeggen dat je mysql opnieuw moet installeren of een combinatie van
. moet gebruikenmysqld_safe --skip-grant-tables
en / of
UPDATE mysql.user SET Password=PASSWORD('password')
en/of iets anders ...
... Niets van alles werkte voor mij
Dit is wat voor mij werkte, op Ubuntu 18.04, van bovenaf
Met speciaal tegoed voor dit antwoord om me uit de frustratie hierover te halen ...
$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf
Let op de regels die luiden:
user = debian-sys-maint
password = blahblahblah
Dan:
$ 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
Ofwel:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Of:
// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
Dan:
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!