我收到此错误消息:用户访问被拒绝(使用密码是)

Posted

技术标签:

【中文标题】我收到此错误消息:用户访问被拒绝(使用密码是)【英文标题】:I got this error message : Access denied for user (Using password YES) 【发布时间】:2012-06-26 01:58:51 【问题描述】:

我有一个问题。

我刚刚使用 WPF 创建了一个应用程序。并尝试连接数据库以检索数据。 第一次,我尝试在我的计算机上使用本地数据库。使用 XAMPP 和 mysql

使用 XAMPP,我可以正常检索数据。现在我想在我的网站上使用数据库。但是当我运行该应用程序时,它会失败并显示以下错误消息:

拒绝用户“[我的用户]”访问(使用密码:YES)

仅供参考,我已经创建了用户名和密码。我还使用向导授予了所有权限,但仍然无法正常工作。

这是我的连接字符串:

MySqlConnection conn = new MySqlConnection("Server=[IP Address]; Database=[database name];Uid=[user id];Pwd=[password];");

我的连接字符串有错误吗?

【问题讨论】:

输出是什么:使用mysql;从用户中选择用户、主机; ?您能否确认您的用户对正确的主机具有正确的权限? @matcheek - 是的。用户具有正确的权限。我授予它所有特权。 根据您的陈述,我的最佳猜测是您的用户对错误的主机拥有正确的权限。 @matcheek - 主机是 IP 地址吗?我的意思是我从远程 sql 中获取主机。 【参考方案1】:

MySQL 凭据会考虑发出请求的计算机的主机名。例如,在服务器上发出的请求可能看起来像 user@localhost。来自名为 client 的计算机的调用看起来像 user@client。这些中的每一个都需要有自己的用户帐户,除非您使用通配符登录的主机名部分。我猜您使用的帐户是特定于主机名的,因此您需要对主机名进行通配符或为它所说的未经授权的帐户输入一个条目。

这个链接谈了一点。

http://dev.mysql.com/doc/refman/5.6/en/account-names.html

【讨论】:

【参考方案2】:

终于找到答案了..

答案是您只需要在您的主机上添加服务器“%”。添加 '%' 后,您可以为 .NET 应用程序添加另一个 IP 地址以访问数据库。

在 .NET 中,使用您从主机添加的 IP 地址更改服务器。谢谢。

【讨论】:

【参考方案3】:

就像 Philip Tinney 所说,您可以通配主机名部分。我在我们的开发服务器上使用了这个(不推荐用于生产服务器):

update mysql.user set host = '%' where host='localhost';

然后我必须重新启动服务器才能让 MySQL 使用它(可能我可以重新启动 MySQL 服务)。

【讨论】:

以上是关于我收到此错误消息:用户访问被拒绝(使用密码是)的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 无法连接 - 访问被拒绝(使用密码是)

PHP apache错误:用户'jobportal'@'localhost'的访问被拒绝(使用密码:是)

用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

错误:(1045)用户'root'@'localhost'的访问被拒绝(使用密码:否)

用户 'ODBC'@'localhost' 的错误 1045 访问被拒绝(不使用密码)

错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)