回答

收藏

无法使用PYODBC远程连接到网络外部的远程连接SQL Server

技术问答 技术问答 240 人阅读 | 0 人回复 | 2023-09-14

由于某种原因,我似乎无法连接到网络以外的任何东西SQL Server,但如果我通过VPN在网络中,没有问题。本地连接我的代码是这样的:
, b0 Q) y$ ]* |; Y4 d& u, [sql = pyodbc.connect(   DRIVER={FreeTDS};   SERVER=192.168.1.xx\ROA;   DATABASE=RentalDB;   UID=xxxxxxx;   PWD=xxxxxxx')以下是我正在尝试的远程操作:
* Q4 \6 ?1 }; a& x1 Q1 ?  |2 a+ C0 n; O7 Psql = pyodbc.connect(   DRIVER={FreeTDS};   SERVER=69.178.xx.xx/ROA;   DATABASE=RentalDB;   UID=xxxxxxxx;   PWD=xxxxxxxx')在尝试连接时,大约15秒后,我抛出了以下错误:6 B* G1 B' W  w7 X3 e. I- G4 G
pyodbc.Error:(‘08001’,’[08001] [unixODBC] [FreeTDS] [SQL
% a& ]; Y: z9 b6 WServer]数据源(0)无法连接(SQLDriverConnect)’)
; w5 q* [8 i( }
我能够通过SQL Server Management
  y- O9 W/ ?4 a2 VStudio连接成功,我们有一个C#开发人员,建立联系没有问题,但由于某种原因,我不能。我在运行Python 2.7,Debian
6 l/ `8 R: z( d( x& s5 X* P7 S2 a7,FreeTDS 0.91和PYODBC 3.0.7。我认为SQL Server版本是2012。有什么想法吗?+ T- C, W" v' u+ ^+ K& Z: p# g# O
编辑:在远程连接方面,我尝试了以下内容’SERVER =’字符串:0 l! M7 z+ m& [9 K1 w. N# g
69.178.xx.xx/ROA69.178.xx.xx\ROAmssql://69.178.xx.xx/ROAmssql://69.178.xx.xx\ROA69.178.xx.xx:1433/ROA69.178.xx.xx:1433\ROAmssql://69.178.xx.xx:1433/ROAmssql://69.178.xx.xx:1433\ROA他们都回到了同样的错误。. B4 m  m. T$ [; d
编辑2:固定上述端口号。
% z5 v9 N2 K7 m3 G' N5 N! V                                                               
. \5 g. }; P8 B    解决方案:                                                               
. |0 N* s* J! N  \6 m' A                                                                我终于弄清楚答案是什么(我偶然试图连接它Azure上托管的SQL Server故障排除时)。SQL8 y2 J% C4 N% w/ I
Server在网络外连接,然后PYODBC连接字符串需要端口号,而不是像其他一样SQL假设默认端口号是在包中使用的。只需添加PORT=1433;连接字符串即可正常工作。PYODBC似乎对何时使用和不想使用默认端口的连接非常挑剔。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则