解决方案翻译自mysql - ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’ - Stack Overflow
问题
在安装过程中没有出现设置密码的环节,root登录是就报了这个错误。
解决
使用sudo直接登入,无需密码
$ sudo mysql -u root
连入后更改密码设定
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
重启mysql
$ sudo service mysql stop
$ sudo service mysql start
登录
$ mysql -u root -p
输入新设置的密码,大功告成!
分析
在Ubuntu下,root用户默认使用的plugin是auth_socket方式,在该方式下重设密码即可。