首页 文章

Pyodbc:登录超时错误

提问于
浏览
1

我正在尝试使用运行Ubuntu 16.04的远程计算机上的 pyodbc 连接到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] [SQL Server的ODBC驱动程序17]登录超时过期(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 . 我将非常感谢您帮助解决此错误 . 谢谢 .

[UPDATE]

根据以下答案,我更新了连接字符串 . 但是,现在我得到以下错误:

pyodbc.Error:('01000',“[01000] [unixODBC] [驱动程序管理器]无法打开lib'/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.0.so.1.1':找不到文件(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一直是个噩梦 . 你能告诉我哪个 pyodbcunixODBCDriver 版本最稳定吗?

我按照this Microsoft说明安装了驱动程序 . 我的 pyodbc 版本是 4.0.23

1 回答

  • 1

    Microsoft的SQL Server ODBC驱动程序不使用 PORT= 参数 . 端口号(如果有的话)用逗号附加到服务器名称/ IP,例如,

    SERVER=xxxTest-SRV,51333;
    

相关问题