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

环境:

问题:

安装过程中没有提示设置密码。

解决步骤:

1. 修改

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

2. 在[mysqld]中加入skip-grant-tables,之后重启mysql。

3. mysql -uroot -p,如果提示输入密码直接回车即可。进入mysql后执行:

use mysql;
update user set authentication_string=password("你的密码") where user="root";
flush privileges;

4. 退出mysql,在/etc/mysql/mysql.conf.d/mysqld.cnf中删除skip-grant-tables,之后重启mysql即可进入。

5. 若提示:

再执行第一步,进入mysql,执行:

mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法_第1张图片

可以看到root 的plugin字段是auth_socket,这里更改为mysql_native_password就可以使用密码。

执行:

update user set authentication_string=password("djw1234"),plugin='mysql_native_password' where user='root';

然后查看:

mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法_第2张图片

最后再去除mysqld.cnf中的skip-grant-tables,保存后重启mysql就可使用密码登录。

你可能感兴趣的:(sql)