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

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

博客内容仅供参考,部分参考他人优秀博文,仅供学习使用
原文地址:https://www.cnblogs.com/linagcheng/p/15496739.html