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

Django-mssql-backend远程服务器报ODBC错误但本地运行正常如何排查?

报错排查方案

1. 确认部署环境ODBC驱动安装与架构匹配

  • 按下Win+R,分别执行odbcad32.exe(32位ODBC管理器)和odbcad64.exe(64位ODBC管理器),切换到「驱动程序」标签,确认是否存在ODBC Driver 13 for SQL Server条目,名称要和你配置里的字符串完全一致,大小写、空格都不能有偏差
  • 确认你部署环境安装的Python架构:32位Python必须对应32位ODBC驱动,64位Python必须对应64位ODBC驱动,架构不匹配会导致pyodbc无法识别到已安装的驱动

2. 清理冗余的数据库配置

你的settings.py中OPTIONS下的SERVER、DATABASE属于冗余配置,和外层的HOST、NAME重复,可能出现优先级冲突,建议删除后重试,修正后的配置参考:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'DatabaseName',
        'HOST': 'HOSTNAME',
        'USER': 'username',
        'PASSWORD': 'password',
        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
            'collation': 'SQL_Latin1_General_CP1_CI_AS',
        }
    }
}

3. 验证pyodbc驱动识别状态

在部署环境的终端打开Python交互模式,执行以下代码,确认输出的驱动列表中包含你配置的ODBC驱动名称:

import pyodbc
print(pyodbc.drivers())

如果列表中没有对应驱动,回到第一步重新检查驱动安装和架构匹配问题。如果存在其他版本的SQL Server ODBC驱动(比如11、17、18版本),可以直接把driver配置项的值改成已安装驱动的完整名称即可,ODBC驱动向下兼容SQL Server 2014。

4. 检查IIS权限配置

如果本地执行runserver已经可以正常运行,只有IIS部署时报错,需要确认IIS应用池的标识权限:可以临时将应用池的标识修改为「本地系统」测试是否恢复正常,确认是权限问题后再按需调整对应账号的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 13:36:04