我正在尝试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;')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
pyodbc.OperationalError:('HYT00','[HYT00] [unixODBC] [Microsoft] [SQL Server的ODBC驱动程序17]登录超时已过期(0)(SQLDriverConnect)')
我尝试IP在连接字符串中使用服务器,但还是没有运气。
但是,我可以sqlcmd从终端连接到使用
以下作品:
sqlcmd -S xxxTest-SRV, 51333 -d TestDB -U xxxx -P xxxx
Run Code Online (Sandbox Code Playgroud)
我没有找到任何可以解决我问题的问题。
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
Run Code Online (Sandbox Code Playgroud)
pyodbc从Linux机器使用MS SQL Server连接似乎总是存在问题。有没有一种方法可以从Python连接到SQL Server。感谢您在解决此错误方面的帮助。谢谢。
[更新]
按照下面的答案,我更新了连接字符串。但是,现在我得到以下错误:
pyodbc.Error:('01000',“ [01000] [unixODBC] [驱动程序管理器]无法打开lib'/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1':找不到文件(0) (SQLDriverConnect)“)
我的odbcinst.ini文件驱动程序定义:
[ODBC Driver 17 …Run Code Online (Sandbox Code Playgroud)