我正在尝试使用iODBC从我的Mac开发机器连接到Microsoft。无论我做什么,我都会从Unable to connect to data source驱动程序获得错误消息FreeTDS。在查阅了各种手册、博客文章和StackOverflow问题之后,我的智慧就到了尽头。
我使用的是MacOSX10.7.4,FreeTDS版本0.91是通过Homebrew安装的。我正在做的事情是:
$ brew install freetds
$ mkvirtualenv odbc
$ workon odbc
$ pip install pyodbc
$ tsql -H localhost -U mydbusername -P mydbpassword -p 1433
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> quit上述连接和工作,但:
$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0607.1008
Enter ODBC connect string (? shows list): driver={TDS};server=localhost;uid=mydbusername;pwd=mydbpassword;database=mydbname
1: SQLDriverConnect = [FreeTDS][SQL Server]Unable to connect to data source (0) SQLSTATE=08001
1: ODBC_Connect = [FreeTDS][SQL Server]Unable to connect to data source (0) SQLSTATE=08001由于我最终计划通过PyODBC使用它,所以我也尝试过这样做:
$ python
Python 2.7.3 (default, Jun 22 2012, 00:35:38)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
>>> c = pyodbc.connect(driver='/usr/local/lib/libtdsodbc.so', host='localhost', name='mydbname', uid='mydbusername', pwd='mydbpassword')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('08001', '[08001] [FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')我试过各种博客文章中的建议,所以.在ODBC管理员中创建DSNs,创建一个~/.odbc.ini,尝试使用unixODBC (不使用PyODBC),指定一个连接字符串而不是关键字args等等。我还通过iODBC生成了一个跟踪文件,我已经粘贴了here,但是我无法从其中收集到比错误消息更多的信息。
(我应该提到的是,我正在使用~/.ssh/config中的行~/.ssh/config通过SSH隧道连接到Server,因为我的IT部门限制我只能从生产服务器的IP连接。它适用于GUI客户端(SQuirreLSQL),因此我假设转发是正确的。
发布于 2012-08-15 19:41:42
在无DSN连接的情况下,应该在连接字符串中使用'port‘参数。
否则,可以在DSN或驱动程序配置中指定端口(分别为odbc.ini和freetds.conf )。
https://stackoverflow.com/questions/11963122
复制相似问题