我需要访问位于我无法直接访问的网络中的 SQL Server。但是,我可以通过 SSH 访问有权访问此 SQL Server 的主机。在其他情况下,我使用 SSH LocalForward 在 127.0.2.3:11433 上本地转发 SQL Server 的端口,效果很好。
在这个特定的实例中,然而,它没有,并且在执行
时它总是抛出一个
OperationalError
pymssql.connect("127.0.2.3:11433", "user", "password")
pymssql.exceptions.OperationalError:(20002,b'DB-Lib 错误消息 20002,严重性 9:
Adaptive Server 连接失败 (127.0.2.3)
DB-Lib 错误消息 20002,严重性 9:
Adaptive Server 连接失败 (127.0.2.3)
但是,如果我使用基于节点的
mssql
命令行实用程序,我可以连接到 SSH 转发的服务器。
当我进入可以 SSH 访问的服务器并从那里执行相同的操作(当然调整端口和 IP 地址)时,我确实可以访问。
简而言之,问题发生在:
这可能是 pymssql 中的一个错误吗?在此提交:https://github.com/pymssql/pymssql/issues/888
首先请更新到最新的 pymssql 版本 - 2.3.0。 然后,尝试不同的 tds_version,如下所示 #860。 如果仍然失败,则设置环境变量TDSDUMP/TDSCONFIIG并尝试分析日志。请参阅FreeTDS 日志记录