【问题标题】:Django: Unable to connect to Microsoft SQL ServerDjango:无法连接到 Microsoft SQL Server
【发布时间】:2018-10-26 11:44:39
【问题描述】:

我无法使用 Django(版本-1.11.3)连接到 MS SQL 服务器

这是错误,我似乎得到了:

django.db.utils.OperationalError: ('08001', u'[08001] [unixODBC][FreeTDS][SQL Server]无法连接到数据源 (0) (SQLDriverConnect)')

这是 odbcinst.ini 文件:

 [FreeTDS] 
 Description=TDS driver (Sybase/MS SQL)
 Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
 Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so 
 CPTimeout= 
 CPReuse=
 UsageCount=2

这是 django settings.py sn -p:

DATABASES = {
    'mssql': {
        'ENGINE':'sql_server.pyodbc',
        'NAME': '<NAME>',
        'USER': '<USER>',
        'PASSWORD':'<password>',
        'HOST':'<host-id>',
        'OPTIONS':
        {
            'driver':'FreeTDS'
        }
    }
}

【问题讨论】:

  • 如 django 文档所述:django-mssql.readthedocs.io/en/latest/settings.html 我在 python 应用程序中使用过 pyodbc,但从未在 django 中使用过。
  • @Jaberwocky 我尝试了这种方法。收到以下错误:文件“.../python2.7/site-packages/django/db/backends/base/base.py”,第 96 行,在 init self.client = self. client_class(self) TypeError: 'NoneType' 对象不可调用

标签: sql-server django freetds


【解决方案1】:

一些事情:

  • 您需要将连接名称设置为default 而不是mssql
  • 如果您在 Linux 上使用 FreeTDS,我建议使用 django-pyodbc-azure Django DB 引擎:pip install 'django-pyodbc-azure&gt;=1.11,&lt;2'
  • 您需要在设置中指定 TDS 版本。

这样做的结果将是这样的设置:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': '<NAME>',
        'USER': '<USER>',
        'PASSWORD':'<password>',
        'HOST':'<host-id>',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'FreeTDS',
            'unicode_results': True,
            'host_is_server': True,
            'extra_params': 'tds_version=7.3',
        }
    }
}

对于窗户:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': '<NAME>',
        'USER': '<USER>',
        'PASSWORD':'<password>',
        'HOST':'<host-id>',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        }
    }
}

您可以在此处查看 1.11 的 django-pyodbc-azure 文档:https://github.com/michiya/django-pyodbc-azure/tree/azure-1.11

祝你好运!这些设置对于 SQL Server 来说可能很棘手,但是一旦你把它们弄对了,它就会很好地工作。

【讨论】:

    【解决方案2】:

    我在 Windows 10 上工作时遇到了同样的问题,这对我有用: 从这里下载驱动程序:https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017 然后在 settings.py 中的 Options 中添加 'driver': 'ODBC Driver 17 for SQL Server' 希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多