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

时间:2018-04-29 15:18:11

标签: 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进行连接。 有没有办法解决它。

8 个答案:

答案 0 :(得分:8)

这是MySQL版本8.0中使用的新身份验证方法,与mysql_native_password相比,后者是传统方法。为了使其工作,您需要将MySQL客户端库升级到8.0版。

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

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

答案 1 :(得分:6)

第一

修改MySql服务器:

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

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

第二

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

  1. Visulastudio>工具> Nuget软件包管理器>管理解决方案的nuget软件包
  2. 转到“浏览”选项卡,在“写搜索”文本框mysql中输入 第一个mysql.data软件包会来,安装它

现在登录,问题将解决

答案 2 :(得分:5)

我有同样的问题。通过删除对MySQL.Data的引用然后重新添加它来修复它。

答案 3 :(得分:4)

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

2.0.0.12.0.02.0.1

更稳定

答案 4 :(得分:1)

您是否几乎不需要MySQL中的身份验证方法为'caching_sha2_password'?如果没有,为什么不把它切换到'标准'? 您可以在“用户和权限”设置中进行检查,然后查找身份验证类型。

答案 5 :(得分:0)

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

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

现在在解决方案资源管理器中->参考->添加参考->进入程序集tsb->扩展->搜索mysql.data.dll(确保其存在)->检查该选项。 请注意,在这种情况下,mysql.data.dll的版本为8.0.18.0。

答案 6 :(得分:0)

只需更新MySql.Data的nuget包

答案 7 :(得分:0)

我们的旧 .NET Framework 4.6.2 项目开始抛出此异常,因为几个月前我们更新了 MySQL 服务器版本后有人重新使用它。 >

所以起初,正如其他人推荐的那样,我通过 NuGet 包管理器更新了所有包(包括 MySql.Datav8.0.24) - 起初似乎没有帮助。然后在项目属性中将项目目标框架更新为 .NET Framework 4.7.2 - 仍然没有。

然后我注意到连接字符串有这个 providerName 参数:

<connectionStrings>
   <add name="___" providerName="MySql.Data.MySqlClient" connectionString="server=___;user id=___;password=___;database=___;"/>
</connectionStrings>

所以我尝试从中删除 .MySqlClient 部分,保留它

providerName="MySql.Data"

并且由于某种原因它起作用了:) 也许更新 MySql.Data 包是解决方案的一部分,而 .MySqlClient 是一些过时的财产。不知道。

相关问题