MySQL8.0登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问(完美解决)
作者:mmseoamin日期:2023-12-11

今天在正常打开mysql的时候突然提示:Access denied for user 'root'@'localhost' (using password: YES)

在网上搜索了很多文章,尝试了他们的解决方法,发现都没有什么效果,最后结合多个方法的重点进行尝试发现完美解决。

第一步:先将Mysql服务停止运行,这一步很重要。

第二步:在Mysql的安装路径中找到 my.ini 文件,右键编辑,在 mysqld 下面输入跳过密码检测

skip-grant-tables

 保存退出文件,切记 切记保存。

第三步:以管理员运行 cmd 也就是俗称的:黑窗口。一定要以管理员运行

第四步:在cmd中输入命令行 mysqld --console --skip-grant-tables --shared-memory

MySQL8.0登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问(完美解决),第1张

 第五步:再次以管理员运行打开cmd。第二个黑窗口。直接输入 mysql 就进入MySQL里面了

第六步:执行命令:update user set authentication_string ='' where user = 'root'; 清空密码。因为MySql8+, 和以前版本有点不同,user表没有password字段了,而是authentication_string 。

第七步:输入指令:flush privileges;   使改变生效。   exit 退出mysql。

第八步:两个黑窗口都进行关闭,在重新运行两个黑窗口 :第三步至第五步再来一遍。

第九步:mysql窗口使用指令:ALTER user 'root'@'localhost' IDENTIFIED BY '123'; 将密码设为123. 就OK了。

最后的最后 将my.ini 文件中的 skip-grant-tables 加上#注释掉就行了,重启mysql服务,就可以进了