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

Mac OS下如何连接Django与Docker部署的SQL Server?

修复Mac OS下Django连接Docker部署SQL Server的报错问题

执行python3 manage.py runserver后出现ModuleNotFoundError: No module named 'sql_server',最终触发ImproperlyConfigured错误,提示'sql_server.pyodbc'不是可用的数据库后端。以下是具体修复步骤:

1. 确认依赖安装环境

  • 激活项目虚拟环境(如你的myenv)后,重新安装mssql-django:
    source myenv/bin/activate
    pip install mssql-django
    
  • 执行pip list检查mssql-django是否已成功安装在虚拟环境中。

2. 修正数据库配置的引擎参数

mssql-django包的正确数据库引擎名称为'mssql',而非旧版本的'sql_server.pyodbc',修改settings.py中的DATABASES配置:

DATABASES = {
    'default': {
        'ENGINE': 'mssql',
        'NAME': 'test1',
        'HOST': 'localhost',
        'PORT': 1433,
        'USER': 'SA',
        'PASSWORD': 'xxxxx',
        'OPTIONS': {
            'driver': 'ODBC Driver 18 for SQL Server',
            'extra_params': 'TrustServerCertificate=yes',  # 解决自签名证书验证问题
        },
    }
}

注意:Mac OS推荐使用ODBC Driver 18 for SQL Server,兼容性优于版本13。

3. 安装Mac OS所需的ODBC驱动

通过Homebrew安装官方ODBC驱动:

brew tap microsoft/mssql-release
brew install msodbcsql18 mssql-tools18

安装完成后,可测试Docker中SQL Server的连通性:

sqlcmd -S localhost,1433 -U SA -P 'xxxxx' -d test1 -C

-C参数用于信任服务器证书,避免SSL连接报错。

4. 验证Docker容器状态

  • 确认SQL Server容器正在运行:
    docker ps
    
  • 检查容器端口映射是否正确,确保宿主机1433端口已映射到容器1433端口(启动容器时需添加-p 1433:1433参数)。

5. 重新启动Django服务

激活虚拟环境后执行:

python manage.py runserver

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:38:17