一、以管理员身份运行cmd,输入net stop mysql,停止MySQL服务
二、打开一个cmd窗口输入mysqld --skip-grant-tables,注意这个cmd命令窗口不要关闭
注:8.0版本后命令改了:mysqld --console --skip-grant-tables --shared-memory
这个命令会跳过密码验证,可以直接进入数据库
三、重新打开一个cmd窗口,输入mysql,回车进入mysql
四、修改密码
1)如果不知道密码是哪个字段,使用这个语句查找
有些版本是password,有些版本是authentication_string
2)update user set authentication_string=password("new_password") where user="root";
注:8.0后password方法报错,查资料好多说弃用了,
修改密码: alter user 'root'@'localhost' identified by 'new_password';
修改完成后,可直接执行语句查看修改后结果,密码同样是加密过的
select user,host,authentication_string from user;
五、exit命令退出mysql,并关闭所有cmd窗口,重启mysql服务就可以了
备注:有些文章里提到修改后用flush privileges;语句刷新MySQL的系统权限相关表,否则会出现拒绝访问。
因为这里是关闭了mysql服务的情况下做的,所以重启mysql服务后也可以使新密码生效,所以不需要这个语句。