gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:52:48 27 4
gpt4 key购买 nike

出于某种原因,我似乎无法连接到我们网络外的任何 SQL Server,但如果我通过 VPN 在网络内,则没有问题。我的代码是这样的本地连接:

sql = pyodbc.connect(
'DRIVER={FreeTDS};'
'SERVER=192.168.1.xx\ROA;'
'DATABASE=RentalDB;'
'UID=xxxxxxx;'
'PWD=xxxxxxx'
)

以下是我正在为远程尝试的内容:

sql = pyodbc.connect(
'DRIVER={FreeTDS};'
'SERVER=69.178.xx.xx/ROA;'
'DATABASE=RentalDB;'
'UID=xxxxxxxx;'
'PWD=xxxxxxxx'
)

尝试连接时,大约 15 秒后出现以下错误:

pyodbc.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')

我能够通过 SQL Server Management Studio 成功连接,我们有一个 C# 开发人员可以毫无问题地建立连接,但由于某种原因,我不能。我正在运行 Python 2.7、Debian 7、FreeTDS 0.91 和 PYODBC 3.0.7。我认为 SQL Server 版本是 2012。有什么想法吗?

编辑:在远程连接上,我尝试了以下 'SERVER=' 字符串:

69.178.xx.xx/ROA
69.178.xx.xx\ROA
mssql://69.178.xx.xx/ROA
mssql://69.178.xx.xx\ROA
69.178.xx.xx:1433/ROA
69.178.xx.xx:1433\ROA
mssql://69.178.xx.xx:1433/ROA
mssql://69.178.xx.xx:1433\ROA

并且它们都返回相同的错误。

编辑 2:修复了上面的端口号。

最佳答案

我终于找到了答案(在尝试解决连接到托管在 Azure 上的 SQL Server 时的意外)。 PYODBC 连接字符串,如果连接到 SQL Server 所在的网络外部,则需要一个端口号,而不是像其他 SQL 包使用的那样假定默认值。只需将 'PORT=1433;' 添加到连接字符串即可使连接正常工作。 PYODBC 似乎对何时使用和不想使用默认端口进行连接很挑剔。

关于python - 无法使用 PYODBC 连接到网络外部的远程 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854745/

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