关闭 mysql 服务有以下两种
services.msc,找到 mysql 服务关闭net stop mysql 关闭服务管理员身份打开 CMD,进入 MySQL 安装目录,我的安装目录 F:\mysql-8.0.29-winx64

跳过密码验证启动 MySQL:mysqld --console --skip-grant-tables --shared-memory (如果 mysql 5.7 可输入 mysqld --skip-grant-tables)

如果启动报错,可以查看 MySQL 错误日志,路径为:F:\mysql-8.0.29-winx64\data\DESKTOP-HNCJIFN.err,应该是一个以 DESKTOP- 开头的文件
mysql -uroot -p,密码为空,直接按回车即可连接成功
UPDATE mysql.user SET authentication_string="" WHERE user="root";

这个窗口不用关,下面修改密码命令可以在这个窗口执行
修改密码前,关闭刚才通过 cmd 命令行启动的 mysqld (即就是那个启动 mysqld 免密认证服务),需要启动系统的 mysql 服务
启动系统服务,管理员进入 cmd,输入 net start mysql 启动服务

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

有可能会报用户不存在,可以将 localhost 改为 %
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
如果嫌命令比较麻烦,可以直接使用客户端如 Navicat 连接 mysql,连接密码为空,连接成功选择指定用户修改

