【发布时间】:2013-04-13 14:47:58
【问题描述】:
这个问题似乎被问了很多,但我找不到明确的答案。
我正在使用 MySQL 进行一些 webapp 测试,一开始我使用了 'root' 用户(密码非空)。我的 root 用户在应用程序(通过 PHP 和 Python 的 Django 测试)、命令行和 PHPMyAdmin 都可以正常工作。
但是我不想使用 root 用户,所以我创建了另一个用户,并将所有权限授予用户应该需要的数据库。 (我使用以 'root' 身份登录的 PHPMyAdmin 来完成此任务)。
新用户无法登录 MySQL。既不是来自 Django 应用程序,也不是 PHPMyAdmin,也不是命令行。
我有两个可能的怀疑:
用户缺少全局权限。 (正如我所说,我授予了所有数据库权限,但是我没有授予任何全局权限);
用户配置的主机。 ('root'在mysql.user表中有四行,对于主机'localhost','my-pc-name ', '127.0.0.1' and '::1'; 而新用户有一行主机'%')
(我已经仔细检查了密码,所以我确信这不是密码问题。)
【问题讨论】:
-
展示你如何在 mysql 中创建一个新用户
-
您是否尝试过专门为
user@localhost授予权限,而不是使用%通配符? -
@Tamil:我用 PHPMyAdmin 创建了新用户。
-
@Uby:我终于做到了,而且成功了。
-
@CarlosEugenioThompsonPinzón 很好,请记住
%不会匹配 unix 套接字连接,因此您需要明确授予localhost的权限