gpt4 book ai didi

python - 当端口 1433 关闭时,pymssql 库如何回退到命名管道端口?

转载 作者:行者123 更新时间:2023-12-01 06:27:26 24 4
gpt4 key购买 nike

我正在尝试删除 pymssql 并迁移到我当前正在进行的 python 3.6 项目上的 pyodbc。网络拓扑涉及位于同一 LAN 和同一子网的两台计算机。客户端是基于 ARM debian 的机器,服务器是 Windows 盒子。 MSSQL 上的端口 1433 已关闭,但端口 32001 已打开,并且 pymssql 仍然能够远程连接到服务器,因为它以某种方式回退到使用命名管道端口 (32001)。

我的问题是 pymssql 如何能够退回到另一个端口并与服务器通信? pyodbc 无法执行此操作,就像我尝试使用端口 1433 一样,它会失败并且不会尝试找到命名管道端口。我尝试挖掘 pymssql 源代码以了解它是如何工作的,但我看到的只是对 dbopen 的调用,该调用最终出现在 freetds 库中。另外为了澄清一下, tsql -LH 返回指定的 pip 信息和开放端口,这与我使用 netstat 和 nmap 看到的一致。我 100% 确定 pymssql 会回退到使用命名管道端口,因为在与 pymssql 连接后建立了与命名管道端口的连接。

任何关于 pymssql 如何做到这一点但 pyodbc 不能做到这一点的见解或指导将不胜感激。

最佳答案

删除 PORT= 参数并在连接字符串中使用 SERVER=ip\instance 使用命名管道而不是端口 1433 进行连接。我仍然不确定驱动程序本身如何知道执行此操作,但它可以工作并解决了我的问题。

关于python - 当端口 1433 关闭时,pymssql 库如何回退到命名管道端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60065942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com