8.0版本的MYSQL连接时出现Access-denied-for-user-root-localhost-using-password-YES-的解决方法

场景:mysql正常运行,突然出现数据库掉线后,无法正常连接,客户端软件和程序均无法正常连接访问。

错误提示:Access-denied-for-user-root-localhost-using-password-YES

解决办法:出现问题后,网上搜索相关的解决方案,大部分不管用,因为mysql8.0和5.x不一样。我的版本是8.0.28,操作系统为windows server 2012R2.

提醒:关于网上说的修改my.ini文件等方法,建议不用,很容易造成数据库服务起不来,和一些莫名其妙的错误

正确的解决思路(参考网上)

1.关闭mysql的服务,我的服务器安装的有点问题,我关闭的是mysql80的服务

2.跳过mysql的权限登录认证。管理员权限打开cmd,cd至mysql的安装目录:C:\Program Files\MySQL\MySQL Server 8.0\bin(或者可以直接打开安装目录文件夹 ,在文件夹内shinf+右键,调出cmd命令)

3.cmd命令行输入:

mysqld --console --skip-grant-tables --shared-memory

4.重新打开一个新的cmd命令框,输入:mysql -uroot -p

按回车,提示输入密码,不输入,直接回车,进入mysql

5.这时候就可以操作mysql数据库了

6.我出现的问题是,root用户直接不见了,我通过手动输入命令,创建了一个root用户,重新赋权限,设置密码。

use mysql

update user set authentication_string=’’ where user=‘root’ 如果这个字段有值,先置为空

flush privileges 刷新权限表

alter user ‘root’@‘localhost’ identified by ‘123’ 修改root 密码

7.关闭cmd,启动mysql80数据库服务

8.这时候登录mysql就可以正常的登录了

参考来源:https://blog.csdn.net/qq_48642405/article/details/121718452

posted @ 2022-07-27 17:26  成神之路~  阅读(982)  评论(0编辑  收藏  举报