目录
- 步骤
- 1、停止mysql服务
- 2、使用命令行启动mysql服务,跳过密码验证
- 3、密码置空
- 4、关闭命令行启动的mysql服务并正常启动
- 5、修改root密码
- 参考
步骤
1、停止mysql服务
以管理员身份打开终端,输入指令net stop mysql停止MySQL服务,停止服务之后不要删后面还有用。



2、使用命令行启动mysql服务,跳过密码验证
再次输入mysqld --console --skip-grant-tables --shared-memory跳过密码验证登录,前面的终端那不要关再打开一个新的管理员终端输入mysql -u root -p这时直接回车就行了

下面的是以管理员方式打开的另一个窗口。
3、密码置空
输入两段命令使密码置空
use mysql
update user set authentication_string='' where user='root';
修改完后,使用quit退出,这里窗口不要关。

4、关闭命令行启动的mysql服务并正常启动
这时就可以关掉以mysqld --console --skip-grant-tables --shared-memory启动的管理员终端了。并使用net start mysql正常重启mysql服务。

5、修改root密码
这时输入mysql -u root -p回车就能进去了,因为密码已经置空所以不需要密码。
输入ALTER USER 'root'@'%' IDENTIFIED BY '新密码'; 设置新密码,并刷新flush privileges; 。
参考
-
Windows:解决MySQL登录ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor=YES)问题
-
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘

](https://img-blog.csdnimg.cn/30d2ce4f67504618ad226e1c313f549f.png)
















