2013-04-13 119 views
5

这个问题似乎被问了很多,但我找不到明确的答案。MySQL错误1045,“访问拒绝用户'用户'@'localhost'(使用密码:是)”

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

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

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

我有两个可能的疑虑:

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

  2. 用户配置的主机。 ('根'有四个线路中的mysql.user表,为主机'localhost' 的'我-PC名''127.0.0.1'':: 1';而新用户对主机“%”

(我有双重检查密码,所以我相信这不是一个密码的问题)

+1

显示如何在mysql中创建一个新用户 –

+0

您是否尝试授予'user @ localhost'特权而不是使用'%'通配符? – Uby

+0

@Tamil:我使用PHPMyAdmin创建了新用户。 –

回答

5

%一行。意味着th新用户可以从任何主机访问数据库。

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

此外,检查MySQL手册下面,它解释了为什么用户应该有两个@'localhost'@'%'

MySQL Reference Manual - Adding Users

+0

将用户添加为'@'localhost''帮助。谢谢。 –

+1

很遗憾,如果每个用户的本地主机版本非常重要,默认情况下,mysql自己的管理程序(“mysql workbench ce”)在其建模模式中没有提供这样做的选项,而只提供一种方法创建“@%”变体。 – Jules

0

重新启动MySQL服务器+ “冲水特权;”命令解决它对我来说

相关问题