凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!

mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

复现

我的操作系统是ubuntu18.04,以下是我的mysql版本:

安装完成后,登录mysql的时候就出现了如下错误:

因为安装的过程中没让设置密码,可能密码为空,但无论如何都进不去mysql。

 

解决方案

1、切换至root用户登录mysql

# 因为安装过程中没有设置密码,所有可以root用户下回车登入mysql
[root@pc ~]# mysql -uroot -p

 

2、设置密码

mysql> use mysql;   # 切换至mysql库
mysql> update user set authentication_string=password("你的密码") where user="root";  # 修改密码
mysql> flush privileges;  # 刷新,即可用刚设置的密码登录数据库

 

3、问题解决

如果经过步骤2以后,还是报错,无法进入mysql。还是以root身份登录mysql,查看数据

mysql> use mysql
mysql> select user, plugin from user;

如果结果显示与下图相同,root对应auth_socket,那么需要修改成mysql_native_password

 

mysql> update user set authentication_string=password("你的密码"),plugin='mysql_native_password' where user='root';

修改完,结果应如下图所示,此时即解决

 

 

参考博客: https://www.cnblogs.com/cpl9412290130/p/9583868.html

posted on 2021-11-01 23:31  凉城旧巷  阅读(493)  评论(0编辑  收藏  举报