ERROR 1045 (28000): Access denied for user ‘xxx‘@‘localhost‘ (using password: Yes)

当用root用户创建新用户并赋权后,切换用户出现错误。问题源于存在空的匿名账户。删除这个匿名账户(在使用特定数据库后执行`DELETEFROMuserWHEREuser=ANDHost=localhost;`)并运行`FLUSHPRIVILEGES;`即可解决问题,之后能正常登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们root用户登录数据库之后,用root用户创建了一个用户并给他赋予权限之后 切换用户的时候就发生了一下的错误:

 当时还以为是密码错误的问题,结果修改了密码还是会出现这样的错误

经过多方查询以及相关博主的帖子博客,其实大概就是因为你有一个空的匿名账户,Mysql会先去匹配它,然后就会一直提示你密码错误,只需删掉这个匿名账户,然后在执行 FLUSH PRIVILEGES;就可以了

use mysql
delete FROM user where user='' and Host='localhost';
FIUSH PRIVILEGES;

执行完之后在进行登录就不会出错啦 

 这里有个小小的细节:在我们执行数据库删除语句之前,必须要使用某个数据库,不然会提示你

no database selected

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值