You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySql.Data 8.0.26连接MariaDB出现SSL Connection Error如何解决?

问题根因

MySql.Data 从8.0.26版本开始,连接字符串的SslMode参数默认值从Preferred(优先尝试SSL,失败则降级为非SSL)调整为Required(强制要求SSL连接),而绝大多数本地部署、测试环境的MariaDB默认没有配置SSL证书,SSL握手失败就会抛出对应的连接错误。

适配8.0.26版本的解决方案

方案1:非生产/不需要SSL加密的场景

直接在连接字符串中显式指定SslMode参数为None或者Preferred即可修复报错,修改后的连接字符串示例:

DATABASE=myDB; data source=localhost; user=root; PASSWORD=pass; POOLING=FALSE;SslMode=Preferred;

如果完全不需要SSL加密,也可以设置为SslMode=None。
修改后的测试代码示例:

class Program
{
    static void Main(string[] args)
    { 
        MySqlConnection con = new MySqlConnection("DATABASE=myDB; data source=localhost; user=root; PASSWORD=pass; POOLING=FALSE;SslMode=Preferred;");
        con.Open();
    }
}

方案2:生产环境需要SSL加密的场景

如果是线上环境需要SSL加密保障数据传输安全,需要先在MariaDB服务端配置合法的SSL证书,之后在连接字符串中补充证书校验相关参数即可:

  • 若使用公共CA签发的可信证书,只需要指定SslMode=Required,客户端会自动校验证书有效性
  • 若使用自签名证书,需要额外添加SslCa参数指定CA根证书路径,示例:
DATABASE=myDB; data source=你的服务端地址; user=root; PASSWORD=你的密码;SslMode=Required;SslCa=C:/ssl/ca.pem;

注意事项

如果配置SslMode=Required后仍然报错,可在连接字符串中添加TlsVersion=Tls12显式指定TLS版本,部分旧版本MariaDB默认不支持更高版本的TLS协议,会导致握手失败。

内容的提问来源于stack exchange,提问作者RojoBarclay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:51:00