Django:无法连接到Microsoft SQL Server

时间:2018-05-16 12:09:43

标签: sql-server django freetds

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

这是错误,我好像得到了:

  

django.db.utils.OperationalError:('08001',你'[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片段:

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

2 个答案:

答案 0 :(得分:1)

一些事情:

  • 您需要将连接名称设置为default,而不是mssql
  • 如果你在Linux上使用FreeTDS,我建议使用django-pyodbc-azure Django数据库引擎:pip install 'django-pyodbc-azure>=1.11,<2'
  • 您需要在设置中指定TDS Verison。

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

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',
        }
    }
}

对于Windows:

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来说,这些设置可能很棘手,但是一旦你做对了,它就能很好地运行。

答案 1 :(得分:1)

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