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

C# 我收到此错误消息:用户访问被拒绝(使用密码“是”),c#,.net,mysql,wpf,xampp,C#,.net,Mysql,Wpf,Xampp,我有个问题 我刚刚用WPF创建了一个应用程序。并尝试连接数据库以检索数据。 我第一次尝试使用计算机上的本地数据库。使用XAMPP和mysql 使用XAMPP,我可以正常检索数据。现在我想使用我网站上的数据库。但当我运行应用程序时,它失败并向我显示以下错误消息: 用户“[my user]”的访问被拒绝(使用密码:是) 仅供参考,我已经创建了用户名和密码。我还使用向导授予了所有权限,但仍然无法工作 这是我的连接字符串: MySqlConnection conn = new MySqlConnecti

我有个问题

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

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

用户“[my user]”的访问被拒绝(使用密码:是)

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

这是我的连接字符串:

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

我的连接字符串有错误吗

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

这个链接谈了一点


我终于找到了答案

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


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

正如Philip Tinney所说,您可以通配符主机名部分。我在我们的开发服务器上使用了此选项(不建议用于生产服务器):


然后我不得不重新启动服务器,让MySQL使用它(也许我可以重新启动MySQL服务)。

结果是什么:使用MySQL;选择用户,从用户中选择主机?你能确认你的用户对正确的主机拥有正确的权限吗?@matcheek-是的。用户具有正确的权限。我授予它所有的权限。根据您所说的,我最好的猜测是您的用户对错误的主机拥有正确的权限。@matcheek-主机的ip地址是正确的吗?我的意思是我从远程sql获取主机。
update mysql.user set host = '%' where host='localhost';