[msql 5.7版本] 解决 “Access denied for user ‘root’@’localhost’”

当我们在命令行用mysql -u root -p登录mysql时,发现系统提示你:
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
我们要做的就是想办法进入mysql模式,然后用sql语句修改个东西。
进入mysql命令行的方法:
1:终端输入 sudo mysql -u root看看能不能进入。
2:上面的方法不行的话,再用https://www.xuexiziliao.top/1316此方法,通过在my.cnf里添加skip-grant-tables解决。

一旦进入之后:
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set plugin=’mysql_native_password’ where User=’root’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
mysql> quit

最后在shell终端里重启sql服务
sudo service mysql restart


注:mysql 5.6及以前的版本需改为:
mysql> update user set plugin=” where User=’root’;