【问题标题】:Connecting to MS SQL server from Mac OS 10.7 through python通过 python 从 Mac OS 10.7 连接到 MS SQL 服务器
【发布时间】:2015-08-13 10:38:14
【问题描述】:

我在 Mac OS 10.7.5 上。我想从 python2.7 连接到一个 MS SQL 数据库。为了连接,我已经安装并配置了 FreeTDS 和 unixodbc。在这些之后,我已经通过 pip 安装了 pyodbc 3.0.10 库。

在之前的版本中,Mac 上的 pyodbc 安装被编译为使用 iODBC,因此为了使 pyodbc 模块使用 unixodbc,需要在编译模块之前进行一些修改。但是后面的版本(包括3.0.10)默认编译为使用unixodbc。

配置后,我已经成功地使用 isql 连接到数据库,这表明我的 unixodbc 配置是有序的。但是当我尝试按如下方式连接到 python 上的数据库时;

pyodbc.connect('DSN=DSN;UID=USER;PWD=PASS')

我收到以下错误:

pyodbc.Error: ('IM002', '[IM002] [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded (0) (SQLDriverConnect)')

看起来它正在尝试使用 iODBC。这可能是什么原因造成的?

编辑:我的配置文件:

freetds.conf:

[SERVERNAME]
    host = DBID.database.windows.net
    tds version = 7.1
    port = 1433

odbcinst.ini

[FreeTDS]
Description = FreeTDS
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so

odbc.ini

[DSN]
Description = "DESC"
Driver = FreeTDS
Servername = SERVERNAME
Port = 1433
Database = DBNAME

【问题讨论】:

  • 我可以在升级到 Mac OS 10.10.5 后通过 pyodbc 连接到数据库,但是我仍然没有解决方案让这个设置在 Mac OS 10.7.5 上工作

标签: macos python-2.7 pyodbc unixodbc


【解决方案1】:

我总是有更好的运气直接与选项联系:

pyodbc.connect('DRIVER={FreeTDS};SERVER=dbserver.domain.com;PORT=1433;DATABASE=yourdb;UID=youruser;PWD=yourpassword;TDS_Version=7.2;')

你可以试一试吗?如果这不起作用,请包含您的 freetds.conf、odbc.ini 和 odbcinst.ini 文件,以便我们重新制作。祝你好运!

【讨论】:

  • 这会导致另一个错误消息:pyodbc.Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen({FreeTDS}, 6): image not found (0) (SQLDriverConnect)'),我已经编辑了问题以包含配置文件
猜你喜欢
  • 2013-06-17
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多