c# - 在 MySql.Data 8.0.26 上出现 SSL 连接错误
问题描述
所以我很长一段时间以来一直在使用 NuGet 的 MySql.Data 来连接我在许多不同的 .NET 项目中的 MariaDB 数据库。碰巧现在我正在启动一个新的 .NET5 项目并重新开始,刚刚安装了 MySql.Data 包的最新版本 8.0.26,但是在尝试连接到数据库时出现以下错误:
MySql.Data.MySqlClient.MySqlException HResult=0x80004005 消息=SSL 连接错误。Source=MySql.Data StackTrace:在 MySql.Data.MySqlClient.NativeDriver.Open() 在 MySql.Data.MySqlClient.Driver.Open() 的 MySql.Data.Common.Ssl.StartSSL(Stream& baseStream, Encoding encoding, String connectionString) ) 在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder 设置) 在 MySql.Data.MySqlClient.MySqlConnection.Open() 在 MySqlSSLErrorTest.Program.Main(String[] args) 在 C:\Users\Murillo\source\repos \MySqlSSLErrorTest\MySqlSSLErrorTest\Program.cs:第 16 行
此异常最初是在此调用堆栈中引发的: System.Net.Security.SslStream.ReceiveBlobAsync(TIOAdapter) System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task ) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) System.Threading.Tasks.ValueTask.Result.get() System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter.GetResult() System.Net.Security .SslStream.ForceAuthenticationAsync(TIOAdapter, bool, byte[], bool)
内部异常 1:AggregateException:发生一个或多个错误。(无法确定帧大小或接收到损坏的帧。)
内部异常 2:IOException:无法确定帧大小或接收到损坏的帧。
现在,正如我一直在搜索的那样,版本 8.0.26 似乎有一些变化,正如MySql 网站上关于这个问题所说的(也许?),但我无法理解究竟是什么我需要对我的连接字符串进行更改以使其工作。
这里我留下一个非常简单的 Console App 示例来重现错误:
class Program
{
static void Main(string[] args)
{
MySqlConnection con = new MySqlConnection("DATABASE=myDB; data source=localhost; user=root; PASSWORD=pass; POOLING=FALSE;");
con.Open(); //ERROR HERE
}
}
我知道我可以将包降级到旧版本以使其正常工作,但我想了解如何解决此问题以便了解最新功能。
谢谢!
解决方案
推荐阅读
- http - go 似乎不尊重持久连接设置
- python - 长文本文件(1.86亿行)解析成表格格式占用空间太大
- sharepoint-online - sharepoint 在线自定义web part 用jquery实现多评论
- p5.js - 如何使用 parcel.js 运行 p5.js 代码?
- c - 3D 体积阵列的 OpenMP 嵌套循环竞争条件
- docker - 不带 -it 选项的 Docker 运行命令
- design-patterns - 依赖倒置的抽象工厂
- python - 如何在我的 gunicorn+flask 项目中使用 flask_migrate
- amazon-ec2 - 为什么在创建 TeamCity 云配置文件时出现 400 Bad Request?
- sql - SQL - 计算一个列值在另一列中的出现