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';
修改完,结果应如下图所示,此时即解决