django。错误:( 'IM002', '[IM002] [的unixODBC] [驱动程序管理器]数据源名称没有找到,并且指定(0)(的SQLDriverConnect)默认驱动程序')
问题描述:
连接到MSSQL服务器时Recieving此错误django。错误:( 'IM002', '[IM002] [的unixODBC] [驱动程序管理器]数据源名称没有找到,并且指定(0)(的SQLDriverConnect)默认驱动程序')
我的Linux机器的详细信息: -
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
MSSQL Server数据库的详细信息:
version : 2012
错误:
django.db.utils.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
Python2.7
Driver: pyodbc == 3.0.10
django-pyodbc-azure == 1.8.3.0 django-mssql == 1.6.1 django >= 1.8.3
答
首先,确保你已经安装了所需的软件包(它看起来像你可能):
# Install pre-requesite packages
sudo apt-get install unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc
然后,请确保您有在/ etc/freetds的/ freetds的.conf文件正确配置:
[global]
# TDS protocol version, use:
# 7.3 for SQL Server 2008 or greater (tested through 2014)
# 7.2 for SQL Server 2005
# 7.1 for SQL Server 2000
# 7.0 for SQL Server 7
tds version = 7.2
port = 1433
text size = 64512
# A typical Microsoft server
[dbserverdsn]
host = dbserver.domain.com
port = 1433
tds version = 7.2
接下来,确保你的unixODBC在/etc/odbcinst.ini正确地讲,通过freetds的:
[FreeTDS]
Description = v0.91 with protocol v7.2
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
最后,确保/etc/odbc.ini看到你创建的freetds的数据源:
[dbserverdsn]
Driver = FreeTDS
Server = dbserver.domain.com
Port = 1433
TDS_Version = 7.2
如果你有问题,前进的道路上,请尝试用“TSQL”和“ISQL测试'命令行实用程序并发布您收到的任何错误。希望这可以起作用。
如果问题出在Django的配置上,请发布您的Django数据库设置以供审阅。
我可以使用tsql与我的数据库交谈。这是否意味着FreeTDS端的所有配置都正确?我仍然在原始问题中遇到错误。 – user443854
我会用尽可能多的细节来创建一个新问题。 tsql只检查FreeTDS是否工作,但不检查unixODBC,pyodbc或堆栈的其他部分。 – FlipperPA