当关闭端口1433时,pymssql库如何返回到指定的管道端口上?

问题描述 投票:1回答:1

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

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

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

python port pyodbc pymssql
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.