MySql.Data.dll 因版本问题造成报错的处理

news/2025/2/12 1:56:32/

NetCore 链接MySQL 报 Character set ‘utf8mb3‘ is not supported by .Net Framework 异常解决_character set utf8mb3_csdn_aspnet的博客-CSDN博客

查看mysql版本号,两种办法:

第一种在数据库中执行查询:SELECT @@version;

第二种使用工具 Navicat:

点击连接节点:

 

在右侧会显示mysql版本:

使用8.0.1x的MySql.Data.dll连接mysql8.0.xx版本mysql数据库,连接数据库时会报错:Authentication method 'caching_sha2_password' not supported by any of the available plugins. 

印象中(具体版本记不清了)MySQL数据库版本大于8.0.26使用8.0.1x的MySql.Data.dll就会报上面的异常信息,MySql.Data.dll版本信息如下:

解决方式:(两种),第一种需要重启mysql服务,第二种不需要重启服务

第一种:

mysql文件中增加my.ini文件,内容如下,关键时最后一行:default_authentication_plugin=mysql_native_password

然后修改mysql的配置文件路径:

打开cmd,进入命令行,输入:mysqld --defaults-file="D:\soft\mysql-8.0.23-winx64\my.ini"

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = D:\\soft\mysql-8.0.23-winx64
datadir = D:\\soft\mysql-8.0.23-winx64\data
port = 3306
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
default_authentication_plugin=mysql_native_password

其实相当于降低数据库版本,本机安装了mysql8.0.32版本设置了default_authentication_plugin:

 

然后重启mysql服务:

net stop mysql

net start mysql

但是重启之后还是不能连接:

第二种

更换高版本的MySql.Data.dll文件,由于项目时nuget安装包,所以再项目发布后,将MySql.Data.dll替换为高版本程序可正常运行,其实是将发布后的8.0.15版本的MySql.Data.dll替换为8.0.29版本的MySql.Data.dll,如下:

 替换后访问程序均正常,后续可能将使用MySqlConnector.dll,尽量避免此问题。

 

 

 


http://www.ppmy.cn/news/71564.html

相关文章

数字化时代,如何从战略设计到架构来打造智慧银行?

导语 | 随着人工智能、大数据、云计算等技术向纵深发展,数字化转型已成为银行发展的“必答题”。调整战略规划和架构重组、加大信息科技投入、推进科技人才队伍建设、持续推出数字化产品……近年来,深化数字化转型,以科技赋能金融服务已成为不…

sql 性能优化基于explain调优(二)

文章目录 Explain问题描述解决方案 Explain 关于Explain具体怎么用以及有哪些优点,我就不过多的跟大家去讲解了,从我最初的文章: explain是什么?explain优缺点及如何使用explain优化SQL,大家可以点击这个链接看一下,对…

Doxygen源码分析: 子目录简要介绍

2023-05-18 23:56:46 ChrisZZ imzhuofoxmailcom Hompage https://github.com/zchrissirhcz 文章目录 1. doxygen 版本2. doxygen 目录结构.git 目录.github 目录workflows/build_cmake.ymlworkflows/coverity.ymlworkflows/docer_publish.yml addon 目录doxmlparser 目录doxyap…

( 位运算 ) 371. 两整数之和 ——【Leetcode每日一题】

❓371. 两整数之和 难度:中等 给你两个整数 a 和 b ,不使用 运算符 和 - ​​​​​​​,计算并返回两整数之和。 示例 1: 输入:a 1, b 2 输出:3 示例 2: 输入:a 2, b 3 输出…

5.13——数组

数组是在程序设计中,把具有相同类型的若干元素按有序的形式组织起来的一种形式。 作为线性表的实现方式之一,数组中的元素在内存中是 连续 存储的,且每个元素占相同大小的内存。 数组通过 索引 快速访问每个元素的值。在大多数编程语言中&a…

Mysql多表和窗口函数

1.多表查询--自关联查询 # 格式: select * from A join A on 条件; 或者 select * from A left join A on 条件; # 自关联查询的用法和 内连接, 外连接等操作一模一样, 只不过是: 表自己关联自己. # 应用场景: 分类表(多级), 行政区域表(3级, 省市区). # 查询结果: 跟上述多…

Philosophy of life: Love and Time

背景介绍: 因为爱、幸福、快乐、悲伤、富有、悲伤等交织在一起组成了人这样一个特殊的感情个体,现实生活中很多人忽视了爱的珍贵,这个故事讲的是"富有","虚荣","悲伤","狂喜" 都不能理解爱的珍贵&am…

Harbor企业docker私服安装及SSL安全访问配置

基础环境 ubuntu server18 域名配置 sudo vi /etc/hosts www.node23.com 192.168.43.23 docker安装 一键安装 curl -sSL https://get.daocloud.io/docker | sh 配置docker vi /etc/docker/daemon.json { "registry-mirrors": ["https://squpqgby.mirr…