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

Ubuntu20.04下Qt应用无法连接Win7端MSSQL Server报错0x2746如何解决

问题根因

报错中的错误码0x2746对应TCP连接被对端重置,核心触发原因是:

  • Microsoft ODBC Driver 18 for SQL Server 默认强制启用TLS加密连接,要求TLS 1.2及以上版本,且默认不信任服务端自签名证书
  • 部署在Windows 7上的MSSQL Server通常默认未启用TLS 1.2、使用自生成SSL证书,部分低版本MSSQL甚至不支持高版本TLS协议
  • DBeaver可正常连接是因为其自带的JDBC驱动默认采用宽松的加密校验策略,和ODBC驱动的默认安全策略不一致
排查解决步骤
  • 第一步:修改连接字符串,添加加密相关参数
    内网测试环境直接关闭强制加密、开启服务端证书信任,修改Qt代码中连接字符串拼接逻辑:

    // 原有连接字符串增加Encrypt和TrustServerCertificate参数
    QString connectionString =  QString("DRIVER={ODBC Driver 18 for SQL Server};Server=%1;Database=%2;Encrypt=No;TrustServerCertificate=Yes;").arg(ipName).arg(dbName);
    

    如果修改后仍连接失败,直接将账号密码写入连接字符串,去掉单独的setUserName/setPassword调用,避免Qt传参兼容问题:

    QString connectionString =  QString("DRIVER={ODBC Driver 18 for SQL Server};Server=%1;Database=%2;Uid=sa;Pwd=top123TOP;Encrypt=No;TrustServerCertificate=Yes;").arg(ipName).arg(dbName);
    
  • 第二步:脱离Qt验证ODBC驱动连通性
    先在Ubuntu终端安装isql工具,直接通过ODBC驱动测试连接,排除Qt代码层问题:

    # 安装unixodbc工具包
    sudo apt install unixodbc
    # 执行连接测试,替换参数为实际配置
    isql -v "DRIVER={ODBC Driver 18 for SQL Server};Server=tcp:192.168.144.101,1433;Database=St***;Uid=sa;Pwd=top123TOP;Encrypt=No;TrustServerCertificate=Yes;"
    

    如果该命令能成功进入SQL交互提示符,说明ODBC驱动配置正常,问题出在Qt的QODBC插件加载或代码参数传递;如果命令返回连接失败,根据isql输出的详细报错定位驱动层问题。

  • 第三步:校验驱动文件和依赖完整性
    确认odbcinst.ini中配置的驱动so文件真实存在,执行以下命令检查:

    ls /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1
    

    如果提示文件不存在,说明ODBC驱动安装不完整,重新安装对应版本驱动即可;同时确认系统已安装Qt依赖的ODBC开发包:

    sudo apt install unixodbc-dev
    
  • 第四步:兼容老版本TLS协议(前三步无效时操作)
    Windows 7默认未启用TLS 1.2支持,且Ubuntu 20.04默认openssl配置禁用了TLS 1.0/1.1协议,如果MSSQL版本较旧仅支持TLS 1.0,可选择以下方案处理:

    • 给Windows 7系统安装对应补丁,启用MSSQL的TLS 1.2支持(生产环境推荐)
    • 卸载Ubuntu上的ODBC Driver 18,改装ODBC Driver 17 for SQL Server,该版本对老TLS协议兼容性更好,默认加密策略更宽松
    • 修改Ubuntu的openssl配置,放开TLS 1.0/1.1支持(仅测试环境临时使用,不推荐生产环境操作)
补充说明

当前提供的odbcinst.ini配置格式没有问题,只要驱动so路径正确即可正常加载,不需要额外调整配置项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:18:15