前言

本文使用的是mysql-8.0.26-winx64,解决思路是先让MySQL可以跳过密码验证,登陆后将密码修改成新的。

解决步骤

跳过验证将密码置空

【CMD窗口1】停止服务,然后前台启动服务并跳过验证。

# 停止服务
net stop mysql

# 前台启动服务并跳过验证
mysqld --console  --skip-grant-tables --shared-memory

image-20211008115821265

【CMD窗口2】登陆MySQL,将密码设置为空串

# 登陆MySQL,提示输入密码回车跳过
mysql -u root -p

# 指定操作mysql库
use mysql

# 将root用户密码设置为空串
update user set authentication_string = '' where user = 'root';

# 登出MySQL
exit

image-20211008132242374

【CMD窗口1】按Ctrl+c停止服务

image-20211008115714337

重新设置新密码

# 后台启动MySQL
net start mysql

# 密码是空了,提示输入密码回车跳过
mysql -u root -p

# 密码修改成新的
ALTER USER root@localhost IDENTIFIED  BY '123456';

# 登出MySQL
exit

image-20211008115821265

验证

登陆MySQL,提示密码直接回车会报错,因为设置了新密码,输入新密码即可登陆成功。

mysql -u root -p

image-20211008115359674