sql-server - Pyodbc:登录超时错误

标签 sql-server python-3.x ubuntu-16.04 pyodbc

我正在尝试使用 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 一直是一场噩梦。您能告诉一下 pyodbcunixODBCDriver 哪个版本最稳定吗?

我已经按照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/

相关文章:

c# - 从数据库中处理 100 万条记录的技术是什么

python - 如何在 Canvas 上画线?

ubuntu - emacs ubuntu 依赖问题

linux - Jenkins 活跃(退出)

sql-server - SSIS 在设计时获取连接但在同一台机器上调试期间失败

sql-server - 如何在不使用 GO 的情况下强制 sql server 一次执行一个命令?

sql-server - DT_Decimal 数据类型 截除小数

Python3,列表中的元组,如何获取其中的所有值

Python Beautiful Soup——通过 Steam 的年龄检查

google-chrome - 括号 - 即使在卸载括号后也可以在 chrome 中实时预览