验证方法"caching_sha2_password"没有任何可用的插件支持

vik*_*hnu 14 c# mysql authentication visual-studio-2017

当我尝试连接MySQL(8.0)数据库与Visual Studio 2018时,我收到此错误消息

"任何可用插件都不支持身份验证方法'caching_sha2_password'"

此外,我无法检索数据库名称.我使用mysql-for-visualstudio-1.2.7mysql-connector-net-8.0.11连接.有没有办法解决它.

小智 12

第一

修改MySql服务器:

  1. 打开MySQL Installer-社区
  2. 选择产品MySQL服务器
  3. 单击最后一栏中的 快速配置
  4. 单击下一步,直到您将不指向身份验证方法
  5. 在“身份验证方法”选项卡上,选择“ 使用旧式身份验证方法”
  6. 单击下一步并完成

现在您可以使用普通密码登录

第二名

如果您使用的是.net Framework 4.5.2,则可以轻松升级MySQL.Data的参考:

  1. Visulastudio>工具> Nuget软件包管理器>管理nuget软件包以获取解决方案
  2. 转到“浏览”选项卡,在“写搜索”文本框mysql中输入第一个mysql。数据包将安装

现在登录,问题将解决

  • 已经找到答案了。显然您还可以为每个用户选择身份验证方法。并且该用户已设置为新的身份验证方法。使用标准身份验证方法创建新用户 (2认同)

小智 8

与mysql_native_password(遗留方法)相比,这是MySQL 8.0版中使用的新身份验证方法.为了使其工作,您需要将MySQL客户端库升级到8.0版.

因此,请使用以下链接并获取8.0.11或更高版本.

https://dev.mysql.com/downloads/connector/net/

  • 这不起作用.从mysql-installer-community-8.0.11.0.msi安装完整的Windows发行版8.0.11之后,仍会抛出异常.从mysql-connector-net-8.0.11.msi重新安装最新版本的Connector/Net也会导致相同的异常.没有候选版本(需要MySql Workbench的候选版本来解决该工具的相同问题). (3认同)

小智 5

我遇到过同样的问题。通过删除对MySQL.Data的引用然后重新添加来对其进行修复。


Ebr*_*ram 5

Pomelo.EntityFrameworkCore.MySqlNuget软件包更新为2.0.0.1而不是2.0.0

2.0.0.12.0.0和更稳定2.0.1


小智 0

当我尝试将客户端计算机连接到服务器时,我遇到了同样的错误。我必须连接到服务器上托管的 MySQL 服务器。我已经开始工作了。遵循以下步骤:

  1. 下载最新的MySQL社区版本,即安装8.0.18.0。确保服务器计算机上安装了相同版本的 MySQL。请注意,客户端计算机和服务器计算机上安装相同版本的 MySQL,否则客户端计算机应安装更高版本的 MySQL。
  2. 在 MySQL 安装程序的帮助下,确保您在客户端计算机上安装了“Developer”版本,以便 MySQL 服务器、SQL.net、mySQL for Visual Studio 等都将安装在其中。
  3. 我们在最新的 MySQL 社区中使用 .Net Framework 4.5.2。因此,请确保您使用 Visual Studio 2019。在 Visual Studio 2019 中构建 UiConfigEDItor 源代码,以便它将支持更高版本的 .Net Framework 4.5。
  4. 现在,将 SQL 安装工作区 (C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2) 中的所有文件(特别是 mysqlData.dll)复制到 Visual Studio 2019 工作区 (C:\Program Files ( x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE)。
  5. 注销您的计算机,然后在 Visual Studio 2019 中打开 UIConfigEditor 源代码。

现在在解决方案浏览->引用->添加引用->转到程序集 tsb->扩展->搜索 mysql.data.dll(确保它在那里)->选中该选项。请注意,本例中 mysql.data.dll 的版本为 8.0.18.0。

  • 这不应被标记为答案。这是针对特定客户端构建的通用问题的特定解决方案,任何通过搜索登陆此页面的人都不会发现有用,而且它也无法回答问题的“原因”。这里有更好的答案应该标记。 (2认同)