Pyodbc连接错误,但isql工作
问题描述:
我已经围绕这一整个小时。我无法通过pyodbc连接到数据库,但我可以同时使用tsql和isql来连接。Pyodbc连接错误,但isql工作
我现在只是想(这可能是错误的,但了我的观点):
import pyodbc
pyodbc.connect("DRIVER={dev};SERVER=epdbdev01;DATABASE=something;USER=epnet2;OPTION=3;")
,我得到这个:
Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen({dev}, 6): image not found (0) (SQLDriverConnect)')
我可以通过ISQL就好了连接,并为了好玩:
$ isql -v dev_fail user pass
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
$ isql -v dev user pass
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
你可以看到,如果我使用了无效的DSN,我可以一个错误,并用正确的DSN我在。现在,不正确的DSN的错误与我用pyodbc得到的错误是一样的,所以看起来有些东西是交错的。
.freetds.conf -> /usr/local/Cellar/freetds/0.91/etc/freetds.conf
.odbc.ini -> /usr/local/Cellar/unixodbc/2.3.2/etc/odbc.ini
.odbcinst.ini -> /usr/local/Cellar/unixodbc/2.3.2/etc/odbcinst.ini
最后:
我这个,我resintalled事情了几次,现在我的ODBC.INI和ODBCINST.INI的符号链接从我的自制软件安装到我的主目录,如下挣扎,我的ODBC.INI和ODBCINST.INI文件:
ODBC.INI
[dev]
Driver = FreeTDS
Description = please work
ServerName = epdbdev01
UID = user
PWD = pass
ODBCINST的.ini
[FreeTDS]
Description = FreeTDS
Driver = /usr/local/Cellar/freetds/0.91/lib/libtdsodbc.so
Setup = /usr/local/Cellar/freetds/0.91/lib/libtdsodbc.so
client charset = utf-8
是否pyodbc查找驱动程序信息的地方,我只是失踪?我在这个杂草中,我可能已经跨过了一些东西,但如果isql的作品,我会想象pyodbc会搭载相同的连接信息,但现在显然。
答
最后我把odbc.ini
和odbcinst.ini
设为/etc
。另外,我使用--with-unixodbc
命令从homebrew
重新安装了freetds
,它工作正常。第5次读这个blog by JD Long帮我得到了iODBC
vs unixODBC
断开。