【问题标题】:Connecting to Microsoft SQL Server through pyODBC on Ubuntu在 Ubuntu 上通过 pyODBC 连接到 Microsoft SQL Server
【发布时间】:2012-11-21 11:31:27
【问题描述】:

Ubuntu (12.10) 机器中从pyODBC 连接到Microsoft SQL Server 实例时遇到问题。

我得到的错误是:

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data Source name not found, and no default driver specified (0) (SQLDriverConnect)')

pyodbc 使用的连接字符串是:

self.corpus_cnxn = pyodbc.connect('DRIVER={FreeTDS};SERVER=UKEDN-06880;DATABASE=db1;UID=user;PWD=pass')

这似乎在 Windows 中的 pyODBC 上运行良好(只需将驱动程序更改为“SQL Server”而不是“FreeTDS”),当我尝试使用 tsql 从 Ubuntu 机器连接时它运行良好 来自终端的Tool,使用以下命令:

tsql -S UKEDN-06880 -p 1433 -U user -P pass

我可以毫无问题地选择任何表,但它似乎在 pyODBC 中不起作用。

任何帮助或建议将不胜感激,我的 Linux 技能非常薄弱并且完全陷入困境,尽管由于它可以在 tsql 上运行,我感觉非常接近!

【问题讨论】:

    标签: python sql-server linux ubuntu pyodbc


    【解决方案1】:

    看起来你已经让 freeTDS 正常工作,因为你可以使用 tsql。你试过连接 isql 吗?

    查看此howto 以了解详细信息。我认为您需要的部分是在页面下方设置 unixodbc。

    【讨论】:

    • 谢谢。该链接节省了许多小时。我现在有一个来自 linux 机器上的控制台的 Python 中的 sql server 连接,这在某种程度上感觉不对:D
    • 您必须使用 DSN 吗?
    【解决方案2】:

    第一阶段 $ sudo apt-get install libmdbodbc1

    像这样编辑文件 /etc/odbcinst.ini

    [Microsoft Access Driver (*.mdb)]
    Description = Microsoft Access Driver (*.mdb)
    Driver      = /path/to/file/libmdbodbc.so
    Setup       = /path/to/file/libtdsS.so
    CPTimeout   = 
    CPReuse     = 
    

    还有文件/etc/odbc.ini

    [Microsoft Access Driver (*.mdb)]
    Description         = SQL Server
    Driver              = Microsoft Access Driver (*.mdb)
    Trace               = No
    TraceFile           = /tmp/mssodbc.log
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多