解决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配置文件,添加下列参数也能解决问题。

bash 复制代码
default_authentication_plugin=mysql_native_password

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

如果我们直接使用新的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.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

相关推荐
Elastic 中国社区官方博客20 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_8166602120 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_3721542321 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.1 天前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y1 天前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724501 天前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
数据库小组1 天前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
zhangchaoxies1 天前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
切糕师学AI1 天前
HBase:一文搞懂分布式宽列数据库(原理 + 架构 + 实战)
数据库·分布式·nosql·hbase·分布式宽列数据库·wide column db
competes1 天前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql