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

部署依赖MySQL.data.dll的SQL Server程序集遇CLR验证错误求助

解决Visual Studio 2022部署MySQL.data.dll相关CLR程序集问题

先搞定SQL72014错误:程序集未在SQL目录找到

  • 先开启SQL Server的CLR集成,执行以下SQL命令:
    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    sp_configure 'clr enabled', 1;
    RECONFIGURE;
    
  • 将MySQL.data.dll复制到SQL Server的默认程序集目录(一般是C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Binn,把XX替换成你的SQL版本号);或者部署时直接指定程序集的完整路径。
  • 回到Visual Studio的数据库项目中,检查MySQL.data.dll的设置:部署操作改为Create Assembly,生成操作设为Build,同时确认引用路径指向本地的MySQL.data.dll文件。

再解决CREATE ASSEMBLY失败:未通过CLR验证

  • 核对MySQL.data.dll版本与SQL Server的兼容性:SQL Server CLR仅支持特定.NET框架版本(比如SQL Server 2019支持.NET Framework 4.8),确保你使用的MySQL.data.dll是基于兼容框架编译的。
  • 使用PERMISSION_SET = UNSAFE创建程序集,因为MySQL.data.dll大概率包含非托管代码,不符合CLR安全验证逻辑,必须开启不安全权限。执行这条SQL:
    CREATE ASSEMBLY MySQLData
    FROM 'C:\你的dll路径\MySQL.data.dll'
    WITH PERMISSION_SET = UNSAFE;
    
    注意:开启UNSAFE权限需要给登录账户赋予EXTERNAL ACCESS ASSEMBLY权限,执行以下命令:
    USE master;
    GRANT EXTERNAL ACCESS ASSEMBLY TO [你的登录账户];
    
  • 用PEVerify工具检查程序集:该工具位于.NET Framework目录(比如C:\Windows\Microsoft.NET\Framework\v4.0.30319\PEVerify.exe),打开命令行执行:
    PEVerify.exe MySQL.data.dll /verbose
    
    如果返回错误,说明程序集确实包含无法验证的代码,只能通过UNSAFE权限集部署。

额外注意事项

  • 确保SQL Server服务账户对MySQL.data.dll所在目录有读取权限,权限不足也会导致部署失败。
  • 如果使用的是最新版MySQL Connector/NET,可能已不再支持SQL Server CLR集成,可尝试切换到兼容的旧版本(比如6.x系列的Connector/NET)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:15:43