Django:无法连接到 Microsoft SQL 服务器
Django: Unable to connect to Microsoft SQL Server
我无法使用 Django(版本 - 1.11.3)连接到 MS SQL 服务器
这是错误,我似乎得到了:
django.db.utils.OperationalError: ('08001', u'[08001]
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source (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'
}
}
}
几件事:
- 您需要将连接名称设置为
default
而不是 mssql
- 如果您在 Linux 上使用 FreeTDS,我建议您使用
django-pyodbc-azure
Django 数据库引擎:pip install 'django-pyodbc-azure>=1.11,<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',
}
}
}
对于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 服务器来说可能很棘手,但是一旦你设置正确,它就会运行良好。
我在处理 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'
希望对你有帮助。
我无法使用 Django(版本 - 1.11.3)连接到 MS SQL 服务器
这是错误,我似乎得到了:
django.db.utils.OperationalError: ('08001', u'[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (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'
}
}
}
几件事:
- 您需要将连接名称设置为
default
而不是mssql
- 如果您在 Linux 上使用 FreeTDS,我建议您使用
django-pyodbc-azure
Django 数据库引擎:pip install 'django-pyodbc-azure>=1.11,<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',
}
}
}
对于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 服务器来说可能很棘手,但是一旦你设置正确,它就会运行良好。
我在处理 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' 希望对你有帮助。