首页 > 解决方案 > 无法在 mac os 上使用 pyodbc 连接到 SQL Server

问题描述

我有一个远程 SQL Server 数据库,我正在尝试从本地主机(Mac OS)连接。

我已经安装了“Microsoft ODBC driver 17 for SQL Server”:

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

然后验证安装的驱动程序:

>>> import pyodbc
>>> pyodbc.drivers()
['ODBC Driver 17 for SQL Server']

odbcinst.ini:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.17.dylib
UsageCount=1

与pyodbc的连接:

# I made a ssh tunnel, so the server is localhost with default 1433 port. 
dsn = 'DRIVER={ODBC Driver 17 for SQL Server};Server=localhost;Database=MyDB;UID=MyUser;PWD=MyPass'
pyodbc.connect(dsn, autocommit=False)

# The following error appears:
pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')

另外,我测试了与 T-SQL 的连接,一切都很好:

% tsql -H localhost -U MyUser -P MyPass -p 1433
locale is "C/UTF-8/C/C/C/C"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

任何想法我的设置有什么问题?

标签: sql-serverpython-3.xmacospyodbcmacos-catalina

解决方案


推荐阅读