MySQL错误1045,“访问被拒绝用户'用户'@'localhost'(使用密码:是)”

时间:2013-04-13 14:47:59

标签: mysql mysql-error-1045

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

我正在使用MySQL进行一些webapp测试,最初我使用'root'用户(使用非空密码)。我的root用户可以从应用程序(从PHP和Python的Django测试),命令行和PHPMyAdmin中正常工作。

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

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

我有两种可能的怀疑:

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

MySQL Reference Manual - Adding Users

答案 1 :(得分:0)

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