解决MySQL大版本升级导致.Net(C#)程序连接报错问题

这篇具有很好参考价值的文章主要介绍了解决MySQL大版本升级导致.Net(C#)程序连接报错问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库版本从MySQL 5.7.21 升级到 MySQL8.0.21

数据升级完成后,直接修改程序的数据库连接配置信息

  <connectionStrings>
    <add name="myConnectionString" connectionString="server=192.168.31.200;uid=app;pwd=FgTDkn0q!75;database=mail;" />
  </connectionStrings>

出现下面错误信息:

Authentication method 'caching_sha2_password' not supported by any of the available plugins.

原因是MySQL8的登陆加密规则与MySQL 5.7的不一样,导致用户验证方法通过,所以有上面异常。

这里可以通过修改mysql配置文件,添加下列参数也能解决问题。

default_authentication_plugin=mysql_native_password

但是我们仍然想通过修改程序来彻底解决问题,所以就有了下面的步骤。直接去MySQL官网下载connector for NET的安装包,安装完成后,从安装目录复制MySql.data.dll文件。

解决MySQL大版本升级导致.Net(C#)程序连接报错问题,MySQL,C#,mysql,c#,数据库

如果我们直接使用新的dll文件直接替换覆盖当前运行程序的dll,再次运行会出现下面的报错信息:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

这里意思是我们需要在Visual Studio里面移除原来的引用,重新引用新的dll文件,重新在进行编译,使用编译后新的程序运行。

如果重新引用后重新编译构建代码出现下面的错误信息:

The type or namespace name "' does not exist in the namespace "' (are you missing an assembly reference?)

这个是目标框架的版本问题,请在选择项目,右键属性,将目标框架从.NET FrameWork4.5改成.NET FrameWork4.7.2,保存后重新编译编译构建就行了。

解决MySQL大版本升级导致.Net(C#)程序连接报错问题,MySQL,C#,mysql,c#,数据库

MySql.Data.dll文件说明

MySql.Data.dll 8.0 是 MySQL 数据库的官方 ADO.NET 驱动程序库文件,它是用于与 MySQL 数据库进行连接、查询和操作的重要组件。不同版本的 MySql.Data.dll 可能对应不同的 .NET Framework 版本,因此我们需要使用正确的版本来确保代码的兼容性和稳定性。

下面是 MySql.Data.dll 8.0 的一些常见版本及其对应的 .NET Framework 版本:

MySql.Data.dll 8.0.11:对应 .NET Framework 4.5
MySql.Data.dll 8.0.17:对应 .NET Framework 4.5.2
MySql.Data.dll 8.0.20:对应 .NET Framework 4.6.1
MySql.Data.dll 8.0.25:对应 .NET Framework 4.7.2文章来源地址https://www.toymoban.com/news/detail-715404.html

到了这里,关于解决MySQL大版本升级导致.Net(C#)程序连接报错问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决node升级到18版本node-sass安装问题

    为了研究下chatgpt,node升级到18版本了,结果之前的项目都gg了,跑不起来了,一看就是node-sass不被支持了,版本要更新,解决方案如下: 首先系统环境变量增加一项: 修改对应项目里面的package.json的node-sass和sass-loader版本号: 删除项目的package.json.lock和yarn.lock这两个文件,最

    2024年02月11日
    浏览(34)
  • Docker 部署升级 Nacos 至 2.2.3 版本解决 raft 漏洞问题

    1. 问题描述 nacos 老版本发现有 raft 漏洞,直接升级最新版 2.2.3 解决问题。 2. 升级步骤 拉取最新镜像 在原部署参数基础上增加以下三个环境变量 其中 NACOS_AUTH_TOKEN 使用以下命令从老版本服务中获取 NACOS_AUTH_IDENTITY_KEY 和 NACOS_AUTH_IDENTITY_VALUE 获取方式参考下面链接 参考链接 更

    2024年02月09日
    浏览(33)
  • flutter版本升级后,解决真机和模拟器运行错误问题

    flutter从3.3.2升级到3.16.0,项目运行到真机和模拟器报同样的错,错误如下: 解决办法:在android目录下的build.gradle加入下面这行,如下图: 重新运行,正常把apk安装到真机上或者运行到模拟器上

    2024年01月22日
    浏览(39)
  • 【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。启动好后,数据1146问题,找不到表(windows版本,免安装版本)

    环境:mysql5.7.13(免安装版本) 第一个问题:mysql本地计算机上的MySQL服务启动后停止 解决方式一:重启服务器(以前成功过,可能是Windows服务器的原因) 解决方式二: 1.清空 data 文件夹,记得备份 2.cmd 进入mysql的bin目录 执行初始化命令:mysqld --initialize 等待几秒钟,没报错就

    2024年02月15日
    浏览(44)
  • 解决VSCode中.net无法找到路径问题(mac版本)

    查询很多帖子时,大多都是使用windows系统的小伙伴。以下内容是对应mac版本。 路径错误时如下 右上角可以看到是与C# Extension有关的,需要从ms-dotnettools.vscode-dotnet-runtime中查看 在VSCode中,打开左侧Extensions栏,点击.NET Install Tool的设置图标,选择Extension Settings 选择蓝色的Edit

    2024年04月16日
    浏览(24)
  • 解决播放swf视频提示“该版本过旧,不支持运行,请升级后使用”的问题

    编辑 C:WindowsSystem32driversetc 目录下的 hosts 文件(先复制一份作为备份),在最后添加以下内容: 127.0.0.1 geo2.adobe.com 127.0.0.1 fpdownload2.macromedia.com 127.0.0.1 fpdownload.macromedia.com 127.0.0.1 macromedia.com 保存即可。 如果提示无法编辑,没有权限的话,鼠标右键这个文件,属性,安全选

    2024年02月08日
    浏览(25)
  • Mysql:5.1升级5.6遇到的问题及解决方式

    yum是不可行的.因为yum源没更新,我已经使用了163网易的源,但是还是不行.最新版仍然不是5.6.没办法,mysql分区是5.5之后的功能,要使用分区功能,就必须升级.. 去官网下载地址:MySQL :: Download MySQL Community Server, 下载了全部包. 报 错.file /usr/share/mysql/charsets/README from install of MySQL-server

    2024年01月25日
    浏览(31)
  • 完美解决小程序onload异步函数导致onshow先执行的问题

    在理想状态下我们将页面首次加载  onLoad  的数据存放到Storage,方便 onShow 用于判断接口的请求,但是在异步函数参与进来后一切都变得不一样了 在这里我是想在  onLoad  中获取到商户的bid,将获取到的bid存放在Storage,然后在  onShow  里面根据存放的bid获取不同商户的商品

    2024年02月07日
    浏览(29)
  • 在不能升级版本的情况下,解决k8s证书到期且续约只有1年的问题

    更新证书需要重启服务才能生效(证书已经过期和还未过期都要重启才能生效),重启会对业务产生影响,请申请时间窗口进行处理 注意该工具只适用于k8s版本v1.18.5、请按照服务器架构选择对应的版本 相关说明: 证书到期后 kube-scheduler 和 kube-controoler-manager 会出现异常,原

    2024年04月25日
    浏览(22)
  • Android Studio升级Gradle Plugin升级导致项目运行失败问题

    升级Android Studio 旧项目无法运行,奇奇怪怪什么错误都有 例如: 又例如: 初步排查判断是旧项目Gradle版本问题导致。因为最近创建的项目,升级AS之后无影响,只有旧项目跑不起来。 查阅资料发现,随着AS gradle插件版本的升级,项目中gradle plugin版本、gradle版本、jdk版本等均

    2024年02月01日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包