Django: невозможно подключиться к Microsoft SQL Server
Я не могу подключиться к серверу MS SQL с помощью Django (версия 1.11.3)
Вот ошибка, я, кажется, получаю:
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:
DATABASES = {
'mssql': {
'ENGINE':'sql_server.pyodbc',
'NAME': '<NAME>',
'USER': '<USER>',
'PASSWORD':'<password>',
'HOST':'<host-id>',
'OPTIONS':
{
'driver':'FreeTDS'
}
}
}
2 ответа
Несколько вещей:
- Вам нужно будет установить имя соединения как
default
вместоmssql
- Если вы используете FreeTDS в Linux, я бы рекомендовал использовать
django-pyodbc-azure
Двигатель Django DB: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',
}
}
}
Вы можете увидеть django-pyodbc-azure
документы для 1.11 здесь: https://github.com/michiya/django-pyodbc-azure/tree/azure-1.11
Удачи! Эти параметры могут быть сложными для SQL Server, но как только вы их правильно настроите, они будут работать хорошо.
У меня была такая же проблема при работе в Windows 10, и вот что мне помогло: Загрузите драйвер отсюда: https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017 А затем добавить "драйвер": "Драйвер ODBC 17 для SQL Server" в Options в settings.py. Надеюсь, это поможет.