我正在尝试使用 pyodbc
从运行 Ubuntu 16.04 的远程计算机连接到 MS SQL Server。
import pyodbc
conn = pyodbc.connect(r'DRIVER=ODBC Driver 17 for SQL Server; SERVER=xxxTest-SRV; PORT=51333; DATABASE=TestDB; UID=xxxx; PWD=xxxx;')
我收到以下错误:
pyodbc.OperationalError: ('HYT00', '[HYT00] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
我尝试在连接字符串中使用服务器IP
,但仍然没有成功。
但是,我可以从终端使用 sqlcmd
连接
以下作品:
sqlcmd -S xxxTest-SRV, 51333 -d TestDB -U xxxx -P xxxx
我没有找到任何可以解决我的问题的问题。
odbcinst.ini
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-17.1.so.1.1
UsageCount=1
从 Linux 计算机使用 pyodbc
连接到 MS SQL Server 似乎总是存在问题。有没有办法从 Python 连接到 SQL Server。我将感谢您帮助解决此错误。谢谢。
[更新]
根据下面的答案,我更新了连接字符串。但是,现在我收到以下错误:
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1' : file not found (0) (SQLDriverConnect)")
我的odbcinst.ini文件驱动程序定义:
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1
UsageCount=1
从 Linux 计算机连接到 MS SQL Server 一直是一场噩梦。您能告诉一下 pyodbc
、unixODBC
和 Driver
哪个版本最稳定吗?
我已经按照this安装了驱动程序微软说明。我的 pyodbc
版本是 4.0.23
最佳答案
Microsoft SQL Server 的 ODBC 驱动程序不使用 PORT=
参数。端口号(如果有)用逗号附加到服务器名称/IP 后面,例如,
SERVER=xxxTest-SRV,51333;
关于sql-server - Pyodbc:登录超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50046158/