我試圖從使用iODBC的Mac開發機器連接到Microsoft SQL Server。無論我做什麼,我都會從FreeTDS驅動程序中收到錯誤消息Unable to connect to data source
。在查閱了各種手冊,博客文章和StackOverflow問題之後,我在智慧的結尾。在Mac上使用iODBC連接到MS SQL Server
我使用Mac OS X 10.7.4,通過Homebrew安裝FreeTDS版本0.91。下面是我在做什麼:
$ 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)')
我已經嘗試過在博客文章和SO帖子中建議的所有方式......在ODBC Administrator中創建DSN,創建一個~/.odbc.ini
,試圖使用unixODBC(它不能與PyODBC一起使用)連接字符串,而不是關鍵字參數等。我還通過iODBC生成了跟蹤文件,我粘貼了here,但是我無法從中收集更多信息,而不是從錯誤消息中收集。因爲我的IT部門限制我只能從生產服務器的IP連接,所以它適用於GUI客戶端( SQuirreLSQL),所以我假設轉發是正確的。)
您指定的pyodbc連接字符串端口? – sunprophit 2012-08-15 08:59:42
我**知道**它必須是簡單的我失蹤了!非常感謝你的sunprophit。 註釋以備將來參考:FreeTDS(或iODBC?)沒有驅動程序的「默認」端口的概念。 – josePhoenix 2012-08-15 15:01:30
@sunprophit:剛剛檢查,它現在工作完美!你可以發佈這個答案,以便我可以投票/接受它嗎? – josePhoenix 2012-08-15 17:35:37