【问题标题】:django. Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')django。错误: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
【发布时间】:2015-10-10 17:43:22
【问题描述】:

连接到 MSSQL 服务器时收到此错误

我的 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

【问题讨论】:

    标签: python-2.7 sql-server-2012 ubuntu-14.04 pyodbc django-1.8


    【解决方案1】:

    首先,请确保您已安装所需的软件包(看起来您可以安装):

    # 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 DATABASES 设置以供审核。

    【讨论】:

    • 我可以使用 tsql 与我的数据库通信。这是否意味着 FreeTDS 端的所有配置都正确?我仍然收到原始问题中的错误。
    • 我会创建一个新问题,其中包含您可以提供的尽可能多的详细信息。 tsql 只是检查 FreeTDS 是否正常工作,而不是 unixODBC、pyodbc 或堆栈的其他部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2019-06-28
    • 1970-01-01
    相关资源
    最近更新 更多