iODBC를 사용하여 Mac 개발 컴퓨터에서 Microsoft SQL Server에 연결하려고합니다. 내가 뭘하든 FreeTDS 드라이버에서 오류 메시지 Unable to connect to data source
가 표시됩니다. 다양한 매뉴얼, 블로그 게시물 및 StackOverflow 질문을 참조한 후에 필자는 필자의 지혜로 끝 맺었습니다.Mac에서 iODBC를 사용하여 MS SQL Server에 연결
FreeTDS 버전 0.91이 Homebrew를 통해 설치된 Mac OS X 10.7.4를 사용하고 있습니다.
$ 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 관리자에서 DSN을 만들고 ~/.odbc.ini
을 만들고 unixODBC (PyODBC에서 작동하지 않음)를 사용하려고 시도하고 키워드 args 대신 연결 문자열을 사용합니다. 또한 iODBC를 통해 추적 파일을 만들었습니다. here을 붙 였지만 오류 메시지보다 더 많은 정보를 수집 할 수 없었습니다.
(내 IT 부서는 프로덕션 서버의 IP에서만 접속 나에게 제한되어 있기 때문에 나는 내 ~/.ssh/config
의 라인 LocalForward localhost:1433 production.someinstitution.edu:1433
와 SSH를 통해 SQL 서버에 대한 연결을 터널링하고 있음을 언급해야한다. 그것은 GUI 클라이언트 작동 (SQuirreLSQL) 전달을 가정합니다.
당신이 pyodbc 연결 문자열에 포트를 지정
그렇지 않으면 당신의 포트가 당신의 DSN 또는 드라이버 설정에 지정 될 수있다 (ODBC.INI 각각 freetds.conf)? – sunprophit
나는 ** 내가 누락 된 단순한 무언가가되어야한다는 것을 알고 있었다! 너무 많은 sunprophit 주셔서 감사합니다. 추후 참조 용으로 : FreeTDS (또는 iODBC?)에는 드라이버의 '기본'포트 개념이 없습니다. – josePhoenix
@sunprophit : 그냥 확인했는데 이제 완벽하게 작동합니다! 투표로 투표 할 수 있도록 답변으로 게시 할 수 있습니까? – josePhoenix