linux上的Django-pyodbc SQL Server/freetds服务器连接问题

Posted

技术标签:

【中文标题】linux上的Django-pyodbc SQL Server/freetds服务器连接问题【英文标题】:Django-pyodbc SQL Server/freetds server connection problems on linux 【发布时间】:2010-05-07 21:20:46 【问题描述】:

错误: ('IM002', '[IM002] [unixODBC][驱动管理器]数据源 找不到名称,也没有默认驱动程序 指定 (0) (SQLDriverConnectW)')

我正在从 Windows 开发机器上的开发迁移到生产中的 Linux 机器上,但我遇到了 freetds 驱动程序的问题。据我所知,错误消息意味着它找不到驱动程序。我可以通过 cli 通过 sqsh 和 tsql 进行连接。我已经设置了我的 settings.py。

   'bc2db': 
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'DataTEST',
        'USER': 'appuser',
        'PASSWORD': 'PASS',
        'HOST': 'bc2.domain.com',
        'options': 
            'driver': 'FreeTDS',
            
    ,

有人对 django 有任何 SQL Server 经验吗?我必须使用dns吗? (我将如何格式化?)

【问题讨论】:

我的朋友也遇到了同样的问题! 【参考方案1】:

我需要使用 freetds 驱动程序支持的supported configurations 之一。我最终将主机信息放在 odbc.ini 中。链接的文档在几页上都有很好的示例。

【讨论】:

我下载了他们的产品,当我运行时:isql -v mydsn [USERNAME] [PASSWORD] 我得到一个错误:[unixODBC][Easysoft][SQL Server Driver][SQL Server]General error :一般错误:无法初始化许可 - 未找到此产品的有效许可, 您能发布一下您的最终配置结果如何吗? 太糟糕了...我今天也在与同样的问题作斗争,但我已经解决了。不管怎么说,还是要谢谢你! :)【参考方案2】:

这是一个 SQL Server 和 django 的数据库连接示例,以防有人需要,这就是它在 settings.py 中的外观。

DATABASES = 
    'default': 
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'YourDBname',
        'USER': 'YourUsername',    
        'PASSWORD': '',
        'HOST': '',
        'OPTIONS' : 
            'driver': 'SQL Native Client',
            'dsn': 'YourDSNname',
            'MARS_Connection': True,
        ,
    ,    

更多信息here...

【讨论】:

以上是关于linux上的Django-pyodbc SQL Server/freetds服务器连接问题的主要内容,如果未能解决你的问题,请参考以下文章

用于 Linux 上 Django 的 SQL Server 2008/2012 后端模块?

Django 1.11 的 django-pyodbc

django-pyodbc bulk_create 坏了

linux(debian)系统django配远程连接sqlserver数据库

Django连接SQL Server,安装相关扩展包及相关配置

Linux 上的 SQL Server 2005 扩展