【问题标题】:MySQL can't use a user that I createMySQL 无法使用我创建的用户
【发布时间】:2013-05-27 20:07:57
【问题描述】:

在 MySQL 中我创建了两个用户:

CREATE USER 'Bob'@'localhost' IDENTIFIED by 'p'
CREATE USER 'Alice'@'%' IDENTIFIED by 'a'

然后,当我尝试连接时:“mysql -u Alice -p”它失败了,告诉我

Error 1045 (28000) Access denied for user 'Alice'@'localhost'

T 鲍勃也是如此。

有人知道为什么会这样吗?

编辑:

MySQL 要求输入密码,我输入并给出了那个错误。

编辑 2:我在远程连接,而不是在本地连接,所以唯一必须工作的是 Alice。

【问题讨论】:

  • mysql -u 'Alice'@'%' -pa 呢?我最近遇到了类似的问题,显然取决于您的 mysql 版本,您必须指定 @... 部分
  • 否,“用户'Alice@%'@'localhost'的访问被拒绝

标签: mysql database


【解决方案1】:

以 root 身份登录并执行以下操作:

GRANT ALL privileges ON *.* TO Bob@localhost IDENTIFIED BY 'p' WITH GRANT OPTION;

【讨论】:

  • 我和 Bob 和 Alice 一起做这件事,什么都没有。我在远程工作,所以只有 Alice 必须工作。
【解决方案2】:

根据Using % for host when creating a MySQL user的评论,

其实有,'localhost'在mysql中是特殊的,表示一个 通过 unix 套接字(或我相信的 Windows 上的命名管道)的连接 与 TCP/IP 套接字相反。使用 % 作为主机不包括 'localhost' - 2012 年 5 月 30 日 20:45

因此,如果您的 mysql -u alice... 命令使用 Unix 套接字而不是 127.0.0.1 进行连接,则您需要

CREATE USER 'Alice'@'localhost' IDENTIFIED by 'a'

【讨论】:

    【解决方案3】:

    您是否尝试过使用该命令刷新权限?

    FLUSH PRIVILEGES;
    

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      相关资源
      最近更新 更多