C#控制台应用连接MySQL时触发SSL错误及MySqlException如何解决
问题根因
该报错由MySQL连接默认要求SSL验证导致,MySql.Data 驱动8.0及以上版本默认将SslMode参数设为Required,本地部署的MySQL服务通常没有配置SSL证书,因此握手失败抛出异常。
解决方案
- 方案1(仅适用于本地开发测试,生产环境禁用):在连接字符串中添加
SslMode=None参数关闭SSL校验,修改后的连接字符串如下:
string connStr = "server=127.0.0.1;user=root;database=secretplace;port=3307;password=12345;SslMode=None;";
- 方案2(生产环境使用):如果你的MySQL服务已经配置了合法SSL证书,将连接字符串的
SslMode参数设为Required,同时补充证书相关配置参数即可:
// 需替换为你的实际证书路径 string connStr = "server=127.0.0.1;user=root;database=secretplace;port=3307;password=12345;SslMode=Required;SslCa=C:/ssl/ca.pem;";
额外验证项
如果修改后仍报错,可再核对两点:
- 确认3307端口的MySQL服务正在正常运行,没有被防火墙拦截
- 确认你安装的
MySql.DataNuget包版本和目标MySQL服务版本兼容性匹配
内容的提问来源于stack exchange,提问作者De'Shaun Broadnax
相关产品推荐
相关产品推荐

