【问题标题】:MySQL Error 1045, "Access denied for user 'user'@'localhost' (using password: YES)"MySQL 错误 1045,“用户 'user'@'localhost' 的访问被拒绝(使用密码:YES)”
【发布时间】:2013-04-13 14:47:58
【问题描述】:

这个问题似乎被问了很多,但我找不到明确的答案。

我正在使用 MySQL 进行一些 webapp 测试,一开始我使用了 'root' 用户(密码非空)。我的 root 用户在应用程序(通过 PHP 和 Python 的 Django 测试)、命令行和 PHPMyAdmin 都可以正常工作。

但是我不想使用 root 用户,所以我创建了另一个用户,并将所有权限授予用户应该需要的数据库。 (我使用以 'root' 身份登录的 PHPMyAdmin 来完成此任务)。

新用户无法登录 MySQL。既不是来自 Django 应用程序,也不是 PHPMyAdmin,也不是命令行。

我有两个可能的怀疑:

  1. 用户缺少全局权限。 (正如我所说,我授予了所有数据库权限,但是我没有授予任何全局权限);

  2. 用户配置的主机。 ('root'mysql.user表中有四行,对于主机'localhost''my-pc-name ', '127.0.0.1' and '::1'; 而新用户有一行主机'%')

(我已经仔细检查了密码,所以我确信这不是密码问题。)

【问题讨论】:

  • 展示你如何在 mysql 中创建一个新用户
  • 您是否尝试过专门为user@localhost 授予权限,而不是使用% 通配符?
  • @Tamil:我用 PHPMyAdmin 创建了新用户。
  • @Uby:我终于做到了,而且成功了。
  • @CarlosEugenioThompsonPinzón 很好,请记住 % 不会匹配 unix 套接字连接,因此您需要明确授予 localhost 的权限

标签: mysql mysql-error-1045


【解决方案1】:

% 表示新用户可以从任何主机访问数据库。

但是,如果您提供 CREATE USER 语句会更有用。

此外,请查看下面的 MySQL 手册,其中解释了为什么用户应该同时拥有 @'localhost'@'%'

MySQL Reference Manual - Adding Users

【讨论】:

  • 将用户添加为@'localhost' 有帮助。谢谢。
  • 遗憾的是,如果每个用户的 localhost 版本如此重要,以至于默认情况下 mysql 自己的管理程序(“mysql workbench ce”)在其建模中没有提供这样做的选项模式,而只提供一种创建“@%”变体的方法。
【解决方案2】:

重启mysql服务器+“刷新权限;”命令为我解决了它

【讨论】:

    猜你喜欢
    • 2017-12-30
    • 2016-06-21
    • 2016-07-11
    • 2023-02-24
    • 2017-07-18
    • 2016-12-16
    • 2020-08-20
    • 2017-08-10
    • 2019-07-23
    相关资源
    最近更新 更多