这个问题似乎被问了很多,但我找不到明确的答案。
我正在使用MySQL进行一些webapp测试,最初我使用'root'用户(使用非空密码)。我的root用户可以从应用程序(从PHP和Python的Django测试),命令行和PHPMyAdmin中正常工作。
但是我不想使用root用户,所以我创建了另一个用户,并且我将所有权限授予用户应该需要的数据库。 (我使用PHPMyAdmin记录为'root'来执行此任务。)
新用户无法登录MySQL。既不是Django应用程序,也不是PHPMyAdmin,也不是命令行。
我有两种可能的怀疑:
用户缺少全局特权。 (正如我所说,我授予了所有数据库权限,但我没有授予任何全局权限);
用户配置的主机。 ('root'在 mysql.user 表中有四行,主机'localhost','my-pc-name ','127.0.0.1'和':: 1';而新用户有一行主机'%')
(我已经仔细检查了密码,所以我确信这不是密码问题。)
答案 0 :(得分:5)
%表示新用户可以从任何主机访问数据库。
但是,如果您提供CREATE USER语句会更有用。
此外,请查看下面的MySQL手册,其中解释了用户为何应同时拥有@'localhost'
和@'%'
:
答案 1 :(得分:0)
重启mysql服务器+"刷新权限;"命令为我解决了