任何可用插件都不支持身份验证方法“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.7
和mysql-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.1
比2.0.0
和2.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.Data 到 v8.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:服务器和客户端都不支持身份验证机制
断开连接:filezilla 中没有可用的受支持的身份验证方法(服务器发送:公钥)