mysql8忘记密码如何重置(禅道的mysqlzt服务和mysql服务冲突)
在学习mybatis时,发现自己忘了mysql密码,于是找了教程修改密码。
重置密码流程如下:
-
停止mysql服务。管理员权限运行命令行输入
net stop mysql
或在任务管理器的服务中选中MySQL右键关闭。
-
切换到mysql的bin路径并跳过密码登录
d: cd D:\mysql-8.0.23-winx64\mysql-8.0.23-winx64\bin mysqld -console --skip-grant-tables --shared-memory
ps:mysql8中无法使用mysqld --skip-grant-tables
保持该命令行面板运行,如果输入mysqld -console --skip-grant-tables --shared-memory
没有提示信息,再开一个管理员权限的命令行重复该步骤 -
重新用管理员权限打开命令行,切换到mysql的bin路径,免密登录
d: cd D:\mysql-8.0.23-winx64\mysql-8.0.23-winx64\bin mysql
然后输入以下sql语句
use mysql;// 切换至mysql数据库 update user set authentication_string='' where user='root'; // 清空密码 select user, authentication_string from mysql.user; // 查询mysql数据库的user表,不用在意内容,不为空即可 flush privileges; // 刷新保存操作
-
关闭之前打开的两个命令行界面(必须关闭输入了
mysqld -console --skip-grant-tables --shared-memory
的命令行,否则之后仍然会免密登录),重新打开一个命令行开启mysql服务,切换到mysql的bin路径并登录修改密码d: cd D:\mysql-8.0.23-winx64\mysql-8.0.23-winx64\bin net start mysql mysql -u root -p
直接回车即可进入mysql
然后输入
use mysql;// 切换至mysql数据库 alter user 'root'@'localhost' identified by 'root'; // 重置密码 select user, authentication_string from mysql.user; // 查询mysql数据库的user表,不为空,和设置的密码 flush privileges; // 刷新保存操作
-
重新登录检验是否重置了密码。
试了几次,又试了几次,发现失败了
-
按照正常流程是能成功的,但是我试了很多次仍然失败。打开任务管理器发现有一个mysqlzt服务,应该是禅道自带的mysql和自己安装的mysql有冲突。关闭mysqlzt重复上述流程即可。
成功!