[mysql] Access denied for user ‘root’@’localhost’ (using password: YES)

作为一个菜鸟,在localhost修改mysql密码的时候手抖,导致root权限丢失,再次登陆出现如下提示:

Access denied for user 'root'@'localhost' (using password: YES)

这时候,密码是正确的,并且已被修改,但是root账户的权限丢失导致无法登陆数据库。
在网上一个个帖子翻看,摸索出来一套解决方案

第一步
关闭mysql服务。
在mysql安装目录中,用记事本打开my.ini 在最后一行加入如下代码:
skip-grant-tables
保存,启动mysql

这时候,mysql登陆是跳开验证的。
在命令行中,输入

mysql -u root -p
【输入当前密码】
use mysql
(这时候我们需要给root以更新的权限)
update user set Update_priv=‘Y’ where user=‘root';
(然后是设置权限的权限)
update user set Grant_priv =’Y’ where user = ‘root';
flush privileges;//刷新权限
(给它最高权限)
grant all privileges on *.* to root@'localhost' identified by "123" with grant option;//123是密码
flush privileges;

这时候给了root之前的权限了
输入 exit 退出mysql
关闭mysql服务

再次打开my.ini,改回原来的状态。
保存,打开mysql服务。
在命令行输入mysql -u root -p;
这时就可以正常使用了。

具体情况可能有所出入,大家可以多看看大牛们的帖子~

你可能感兴趣的:(异常记录,mysql)