当我尝试将MySQL(8.0)数据库与Visual Studio 2018连接时,我收到此错误消息
任何可用插件都不支持“身份验证方法'caching_sha2_password”
此外,我无法检索数据库名称。
我使用mysql-for-visualstudio-1.2.7
和mysql-connector-net-8.0.11
进行连接。
有没有办法解决它。
答案 0 :(得分:8)
这是MySQL版本8.0中使用的新身份验证方法,与mysql_native_password相比,后者是传统方法。为了使其工作,您需要将MySQL客户端库升级到8.0版。
因此,请使用以下链接并获取8.0.11或更高版本。
答案 1 :(得分:6)
第一
修改MySql服务器:
现在您可以使用普通密码登录
第二
如果使用的是.net Framework 4.5.2 您可以轻松升级MySQL.Data的参考:
现在登录,问题将解决
答案 2 :(得分:5)
我有同样的问题。通过删除对MySQL.Data的引用然后重新添加它来修复它。
答案 3 :(得分:4)
将Pomelo.EntityFrameworkCore.MySql
Nuget软件包更新为2.0.0.1
而不是2.0.0
2.0.0.1
比2.0.0
和2.0.1
答案 4 :(得分:1)
您是否几乎不需要MySQL中的身份验证方法为'caching_sha2_password'?如果没有,为什么不把它切换到'标准'? 您可以在“用户和权限”设置中进行检查,然后查找身份验证类型。
答案 5 :(得分:0)
当我尝试将客户端计算机连接到服务器时,我遇到了相同的错误。我必须连接到服务器上托管的MySQL服务器。我有这个要工作。遵循以下步骤:
现在在解决方案资源管理器中->参考->添加参考->进入程序集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.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 是一些过时的财产。不知道。