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

Posted

技术标签:

【中文标题】任何可用插件都不支持身份验证方法“caching_sha2_password”【英文标题】:Authentication method 'caching_sha2_password' not supported by any of the available plugins 【发布时间】:2018-10-09 19:38:52 【问题描述】:

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

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

我也无法检索数据库名称。 我使用mysql-for-visualstudio-1.2.7mysql-connector-net-8.0.11 进行连接。 有什么办法可以解决。

【问题讨论】:

我在单独的对话框中收到的错误消息是“任何可用插件都不支持身份验证方法'caching_sha2_password'”。 这个问题重复。 ***.com/questions/49931541/… 【参考方案1】:

第一

修改 MySql 服务器:

    打开 MySQL 安装程序 - 社区 选择产品 MySQL 服务器 点击最后​​一列的快速配置 单击下一步,直到您不会指向身份验证方法 在身份验证方法选项卡上 - 选择 使用旧身份验证方法 点击下一步完成

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

第二次

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

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

现在登录,问题将解决

【讨论】:

我正在使用db-up,上面的选项不起作用...第二个选项是不可能的,因为mysql是db-up的依赖项。还有其他想法吗? 已经找到答案了。显然,您还可以为每个用户选择身份验证方法。并且此用户被设置为新的身份验证方法。使用标准身份验证方法创建新用户【参考方案2】:

这是 MySQL 8.0 版中使用的新身份验证方法,与传统方法 mysql_native_password 相比。为了完成这项工作,您需要将 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】:

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

2.0.0.12.0.02.0.1 更稳定

【讨论】:

奇怪的是,一旦我将它更新到 2.0.1 并将 ef 设计包更新到 2.0.1,问题就解决了【参考方案4】:

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

【讨论】:

升级 MySQL.Data 到版本 8.0.x【参考方案5】:

只需为 MySql.Data 更新您的 nuget 包

【讨论】:

【参考方案6】:

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

【讨论】:

您能否提供一些信息如何在 MySQL 8.0 上执行此操作? 根据我的经验,在新安装/升级时,“标准”默认为“caching_sha2_password”【参考方案7】:

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

所以一开始,按照其他人的建议,我通过 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 是一些过时的财产。不知道。

【讨论】:

【参考方案8】:

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

    下载最新的 MySQL 社区版本,即安装的 8.0.18.0。确保在服务器机器上安装了相同版本的 MySQL。请注意,客户端机器和服务器机器上安装相同版本的 MySQL,否则客户端机器应安装更高版本的 MySQL。 在 MySQL 安装程序的帮助下,确保您在客户端计算机上安装了“开发人员”版本,以便在其中安装 MySQL 服务器、SQL.net、mySQL for Visual Studio 等。 我们在最新的 MySQL 社区中使用 .Net framework 4.5.2。因此,请确保您使用 Visual Studio 2019。在 Visual Studio 2019 中构建 UiConfigEDItor 源代码,以便支持更高版本的 .Net framework 4.5。 现在,将所有文件(尤其是 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)。 注销您的计算机,现在在 Visual Studio 2019 中打开 UIConfigEditor 源代码。

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

【讨论】:

等一下……vs 2019 从何而来?我们只是安装在生产机器上而不是开发人员 PC 上 这不应被标记为答案。这是针对特定客户端构建的针对通用问题的特定解决方案,任何通过搜索登陆此页面的人都不会发现有用,并且它也无法回答问题的“原因”。这里有更好的答案应该标记出来。

以上是关于任何可用插件都不支持身份验证方法“caching_sha2_password”的主要内容,如果未能解决你的问题,请参考以下文章

VS2010链接Mysql Authentication to host 'xx' for user 'root' using method 'caching_

带有MS Exchange的JavaMail:服务器和客户端都不支持身份验证机制

github:没有可用的受支持的身份验证方法

断开连接:filezilla 中没有可用的受支持的身份验证方法(服务器发送:公钥)

断开连接 没有可用的受支持的身份验证方法(服务器发送公钥) 发送公钥 gssapi 密钥和麦克风

谷歌云实例无法通过腻子连接 - 获取“不支持的身份验证方法可用(服务器发送:公钥)”