天天看点

解决win10下MySQL 5.7.22登录Access denied for user 'root'@'localhost' (using password: YES)的问题

这是一个漫长曲折的过程,网上资料查了不少,大都不适合,写一下,希望后来者少遇到坑。。

1.首先停mysql服务,进入到mysql安装bin目录下,net stop mysql;也可以直接任务管理器-->服务-->右击停止(因为公司限制,没有administrator权限,谁敢相信这一步都如此蛋疼)

2.打开第一个cmd1窗口,切换到mysql的bin目录,运行命令:

mysqld --defaults-file="C:\yourmysqllocation\my.ini" --console --skip-grant-tables

注释:

该命令通过跳过权限安全检查,开启mysql服务,这样连接mysql时,可以不用输入用户密码。  此时已经开启了mysql服务了!

这个窗口保留 不关闭。(我在网上查有说在my.ini配置文件中加skip-grant-tables,我在尝试的时候会报错)

3、打开第二个cmd2窗口,连接mysql:

输入命令:

mysql -u root -p

出现:

Enter password:

在这里直接回车,不用输入密码。

然后就就会出现登录成功的信息, 

 使用命令:

show databases;

使用命令切换到mysql数据库:

use mysql;

使用命令更改root密码:

update user set authentication_string = password('123456'), password_expired = 'N', password_last_changed = now() where user = 'root';

刷新权限:

FLUSH PRIVILEGES;

然后退出,重新登录: 

quit

重新登录: 可以关掉之前的cmd1 窗口了。然后用net start mysql 启动服务

mysql -u root -p

出现输入密码提示,输入新的密码即可登录:

Enter password: ***********

显示登录信息: 成功  就一切ok了

继续阅读