mysql用户表root用户被锁定,无法登陆(Account is locked)

今天看到mysql的user表就打开了看看,看到root还有些权限是N,然后顺手就改成了Y,结果保存之后就凉凉了,数据库就打不开了,报“Account is locked”这个错误,上网排查了好半天才解决,解决方法记录一下。

解决思路:

1、使用skip-grant-tables 跳过密码验证,此时可以打开MySQL服务并登录
2、手动把user表的root权限修改回来
3、重置root密码
4、修改root密码

 

1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务;

2.开启跳过密码验证登录的MySQL服务,输入命令 :

mysqld --console --skip-grant-tables --shared-memory 

3.此时再打开一个新的cmd,无密码登录MySQL,输入登录命令:

mysql -u root -p

4.登录成功后,此时cmd命令窗口不要关,去navicate就能重新打开数据库,找到user表,把root的权限改回来。

5.重置root的密码,回到cmd命令窗口,执行如下命令:

use mysql
update user set authentication_string='' where user='root';

然后关闭所有的命令行窗口(此时mysql是关闭了的)

6.打开命令行,输入:net start mysql  启动MySQL服务。

7.输入登录命令:mysql -u root -p,会出现Enter password,这里不需要输入密码,直接点回车键即可

8.执行修改root账号的密码命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

注意:如果你不确定你的账号是localhost还是%还是其他,你需要先查看一下,然后修改下命令再执行

查看user表结构命令:

select user,host from user;

比如我的就不是localhost,而是%,那我的命令就是第5步的:

alter user 'root'@'%' identified by 'root';

执行成功后会有Query OK提示,此时重启mysql服务就可以正常打开数据库了。

 

posted @ 2023-05-13 15:36  大木瓜  阅读(1710)  评论(0编辑  收藏  举报