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

VS2017+MySQL:升级MySQL.Data至8.0.11.0后所有查询失效求助

解决方案:MySQL.Data更新后SSL连接错误问题

我来帮你解决这个问题——这个情况大概率是最新版MySQL.Data驱动对SSL连接的默认策略做了变更,和你的MySQL服务器“按需SSL”的配置不匹配导致的。试试下面这几个方案:

1. 在连接字符串中显式指定SSL模式

最新版的MySQL.Data(尤其是8.0及以上版本)默认会强制要求SSL连接,而你的服务器设置的是“按需SSL”(即允许但不强制)。你可以在连接字符串里添加SSL模式参数,让驱动适配服务器的配置:

  • 如果想完全禁用SSL(适合本地开发环境):
    Server=127.0.0.1;Database=your_db;Uid=user;Pwd=password;SslMode=None;
    
  • 如果想保持“按需SSL”(优先用SSL,没有则降级为非SSL):
    Server=127.0.0.1;Database=your_db;Uid=user;Pwd=password;SslMode=Preferred;
    

2. 确认MySQL服务器的SSL配置

虽然MySQL Workbench显示支持“按需SSL”,但可以手动检查服务器的配置文件确保没有强制SSL:

  • Windows系统:找到my.ini文件(通常在C:\ProgramData\MySQL\MySQL Server X.X目录下)
  • Linux/macOS系统:找到my.cnf文件(通常在/etc/mysql或/usr/local/mysql/etc目录下)

检查以下配置项:

# 确保这个选项设置为OFF,不强制要求SSL连接
require_secure_transport = OFF

# 如果配置了SSL证书,确保路径正确(按需SSL不需要这些也能正常工作)
# ssl_ca = /path/to/ca.pem
# ssl_cert = /path/to/server-cert.pem
# ssl_key = /path/to/server-key.pem

修改后重启MySQL服务。

3. 彻底清理并回退MySQL.Data版本

如果回退旧版本没生效,可能是NuGet缓存或项目残留文件导致的:

  • 打开Visual Studio,右键项目 → 管理NuGet程序包,卸载当前的MySQL.Data
  • 清理NuGet缓存:工具 → NuGet包管理器 → 程序包管理器设置 → 清除所有NuGet缓存
  • 重新安装之前可用的旧版本MySQL.Data,安装完成后确认项目引用的版本正确
  • 清理项目的bin和obj目录,重新生成项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:46:19