systemdis now used to look after mySQL instead ofmysqld_safe(which is why you get the-bash: mysqld_safe: command not founderror - it's not installed)
Theusertable structure has changed.
So to reset the root password, you still start mySQL with--skip-grant-tablesoptions and update theusertable, but how you do it has changed.
1. Stop mysql:
systemctl stop mysqld
2. Set the mySQL environment option:
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set:
systemctl start mysqld
4. Login as root:
mysql -u root
5. Update the root user password with these mysql commands:
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
-> WHERE User = 'root' AND Host = 'localhost';mysql> FLUSH PRIVILEGES;mysql> quit
6. Stop mysql:
systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time:
systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
systemctl start mysqld
9. Try to login using your new password:
mysql -u root -p