无法使用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似乎对何时使用和不想使用默认端口的连接非常挑剔。 |
|
|
|
|
|