开发者社区> 问答> 正文

MySQL错误1045(28000):用户'bill'@'localhost'的访问被拒绝(使用密码

首先,我要提一提,我经历了许多建议的问题,没有找到任何相关的答案。这是我在做什么。

我已连接到我的Amazon EC2实例。我可以使用以下命令以MySQL root登录:

mysql -u root -p 然后我用主机%创建了一个新的用户账单

CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass'; 授予用户帐单所有特权:

grant all privileges on . to 'bill'@'%' with grant option; 然后,我从root用户退出并尝试使用bill登录:

mysql -u bill -p 输入正确的密码并收到以下错误消息:

错误1045(28000):用户'bill'@'localhost'的访问被拒绝(使用密码:是)

展开
收起
保持可爱mmm 2020-05-08 10:23:50 472 0
1 条回答
写回答
取消 提交回答
  • 当可能有多个匹配项时,服务器必须确定要使用哪个匹配项。它可以解决此问题,如下所示:(...)

    客户端尝试连接时,服务器将按排序顺序浏览[表mysql.user]的行。 服务器使用与客户端主机名和用户名匹配的第一行。 (...)服务器使用排序规则,该规则首先对具有最特定Host值的行进行排序。文字主机名[例如'localhost']和IP地址是最具体的。

    因此,这样的匿名用户会像“ '[any_username]'@'%'从” 连接时那样“屏蔽”任何其他用户localhost。

    'bill'@'localhost'确实匹配'bill'@'%',但是会''@'localhost'事先匹配(例如)。

    推荐的解决方案是删除该匿名用户(无论如何通常这样做是一件好事)。来源:stack overflow

    2020-05-08 10:24:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像