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数据库设置以供审阅。

+0

我可以使用tsql与我的数据库交谈。这是否意味着FreeTDS端的所有配置都正确?我仍然在原始问题中遇到错误。 – user443854

+0

我会用尽可能多的细节来创建一个新问题。 tsql只检查FreeTDS是否工作,但不检查unixODBC,pyodbc或堆栈的其他部分。 – FlipperPA