python – 与MS SQL的远程连接 – 使用SQL Server Management Studio使用pyodbc vs success时出错

我在同一网络中有一个MS SQL数据库,但在其他计算机中.

使用SQL Server Management Studio(SSMS)Express,我可以找到数据库并连接没有问题.

但是当我使用pyodbc连接到同一台服务器时:

import pyodbc

server = r"xxxER\xxxSQLSERV"
db = "xxxDB"
user = "xxx"
password = "xxxx"
conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server + ';DATABASE=' + db +';UID=' + user + ';PWD=' + password)

我收到以下错误:

pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC SQL Server Driver]Login timeout expired (0) (SQLDriverConnect)')

OBS:我猜服务器字符串应该是正确的,因为如果我更改它,我总会得到以下错误:

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)')

这里的图像显示了使用SQL Server Studio Express远程连接时的成功.

《python – 与MS SQL的远程连接 – 使用SQL Server Management Studio使用pyodbc vs success时出错》

最佳答案 尝试指定端口:

import pyodbc

server = r"xxxER\xxxSQLSERV"
db = "xxxDB"
user = "xxx"
password = "xxxx"
port = "1433"
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';PORT=' + port + ';DATABASE=' + db +';UID=' + user + ';PWD=' + password)

如果您仍然遇到问题,请尝试使用服务器的IP或FQDN.

点赞