首页 > 解决方案 > pyodbc.OperationalError: ('HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]登录超时已过期 (0) (SQLDriverConnect)')

问题描述

使用 SQL Server Management Studio (SSMS) Express,我可以找到数据库并毫无问题地连接。

但是当我使用 pyodbc 连接到同一台服务器时,使用:

    import pyodbc
    Server = r"xxxER\xxxSQLSERV"
    db = "xxxDB"
    user = "xxx"
    password = "xxxx"
    conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server + ';DATABASE=' + db +';UID=' + user + ';PWD=' + password)

通过在我的本地使用 Pyhton,我可以连接,但是当我尝试在 linux 服务器中遇到错误时

pyodbc.OperationalError: ('HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')

我也尝试使用适用于 SQL Server 的 ODBC Driver 17,但遇到了同样的问题。有人可以建议我吗?

标签: pythonsql-serverlinuxpyodbc

解决方案


我有这个问题并在这里解决了我的问题。只需添加版本。

conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server + ';DATABASE=' + db +';UID=' + user + ';PWD=' + password)

如果不起作用,则将版本 17 更改为 13 如果不是 11 。 列出 ODBC 的版本。


推荐阅读