使用方法mysql_native_password进行身份验证失败

本文关键字:身份验证 失败 password mysql native 使用方法 | 更新日期: 2023-09-27 18:22:23

在Visual Studio 2012 Update 3中使用Connector/Net C#/WinForms尝试连接到web主机上的MySQL,但收到以下错误消息:

用户对主机"1.1.1.1"的身份验证username@mydomain.com'使用方法'mysql_native_password'失败,返回消息:拒绝用户访问'username@mydomain.com'@'2.2.2.2'(使用密码:YES)

string connectionString = "SERVER=1.1.1.1;PORT=3306;DATABASE=databaseName;UID=username@mydomain.com;PASSWORD=mypassword;";
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();

我正在远程连接,已将我的IP列入白名单(甚至临时将所有(%)列入白名单进行测试),并对用户名、密码和IP进行了三次检查。

我最初尝试了不带域的用户名(username而不是username@mydomain.com)但它给了我以下错误:

不再支持使用旧密码进行身份验证,请使用4.1样式的密码。

如有任何帮助,我们将不胜感激,谢谢!

使用方法mysql_native_password进行身份验证失败

它的"远程数据库访问主机"问题。"您可以允许外部web服务器访问您的MySQL数据库,方法是将其域名添加到能够访问您网站上数据库的主机列表中。"

MySql访问权限未授予运行应用程序的系统的IP地址。(在您的情况下是"2.2.2.2")。

注:-"2.2.2.2"是您的公共IP地址。

两种可能的情况:

  1. MySQL区分大小写请确保连接字符串中Database=的大小写与实际数据库名称匹配
  2. 您可能必须向用户授予权限

我希望这对你有帮助。

检查应用程序设置文件(或存储连接字符串的位置)。

在我的情况下,应用程序使用的是旧的连接字符串(无效)。我假设我在设置文件的代码中所做的更改反映给了(设置文件的)设计器。但事实并非如此!

在MySQL中创建新用户后,在MySQL Workbench中"测试连接";将成功,但C#MySqlConnection.Open()将抛出与问题相同的异常和消息(使用localhost和127.0.0.1以及本地ip地址进行测试)。

原因是MySqlConnection.Open()将以某种方式使用SELECT权限,并且您至少需要为新用户启用SELECT权限。错误消息具有误导性。

这可能与ASP.NET 4.5上基于特定成员身份SQL Server的指令有关,解决方法是在web.config中创建新成员身份,删除mvc 4 AccountControler并使用MVC3中的旧成员身份

http://www.nsilverbullet.net/2012/11/06/using-mysql5-as-membership-backend-for-aspnet45-mvc4-application/

在我的案例中,没有使用更新后的密码。我刚刚使用密码生成器生成了密码并复制了它,但忘记了单击"更改密码"。

还要检查用户是否已添加到数据库中并具有特权。

对我来说,使用实际的IP地址而不是域名解决了问题

在cpanel上白列出我的Ip时,我不小心在我的Ip地址后面放了一个空格。[应该由他们处理]我再次添加ip,它起作用了。

在我的案例中,这个问题也具有误导性。有相当多的windows终端在运行";相同"。net应用程序全部连接到远程MySQL服务器(安装在windows服务器机器中)。然而,只有一个总是在任何人点击运行.net应用程序时弹出特定错误。ODBC测试连接成功通过,无论是否弹出错误,当按下"确定"时,应用程序最终继续成功加载,然后工作正常。但之后,当有人第一次试图跑进时,消息再次出现。我只在这个特定的终端重复一遍!当我注意到,只有在这个有问题的特定终端中,我们忘记启用DHCP时,问题终于解决了!以及";尽管它总是被给予相同的IP";根据我们的IT政策,然而,只有当我们禁用DHCP并将此IP、SUBNET和GW设置为固定时,它才起作用!

用Navicat这样的程序检查mysql服务器用户是否有本机密码。一切都是正确的,但如果你得到这个错误检查链接DLL 的版本

这个错误;Mysql.Data.dll和Mysql Server版本不匹配错误。下载并安装旧版本

https://downloads.mysql.com/archives/c-net/

Mysql版本<4.5

Mysql.Data.Dll版本=6.0.3