6

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

我正在使用 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''::1';而新用户有一行用于主机' %' )

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

4

2 回答 2

5

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

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

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

MySQL 参考手册 - 添加用户

于 2013-04-13T14:52:08.520 回答
0

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

于 2017-02-12T23:38:41.780 回答