所以我在尝试连接到我的网络上托管的服务器时遇到了一些问题,但是在我试图运行的程序的另一台计算机上。我已经检查过,两台计算机都在同一个域上。我在python中编码并使用PYODBC进行连接。 连接线如下:
connectLine = 'DRIVER={SQL Native Client};SERVER='+configValues['host']+';DATABASE='+configValues['db']+';UID='+configValues['user']+';PWD='+configValues['passwd']
db = pyodbc.connect(connectLine)
现在,当服务器与程序在同一台计算机上时,它可以工作,但是当我尝试连接到我的实际服务器上的服务器时,它不起作用。我在Windows SBS 2003上运行MicrosoftSQL Express 2005,运行该程序的计算机运行的是Windows 7,程序用Python 2.7编码
这是程序的输出,我打印了连接线。
DRIVER={SQL Native Client};SERVER=192.168.1.103\OSBORNE;DATABASE=vpmser;UID=massEmailer;PWD=cogbutfeswas5836;
Traceback (most recent call last):
File "E:\Mass Emailer\massEmailer.py", line 56, in <module>
db = pyodbc.connect(connectLine)
Error: ('08001', '[08001] [Microsoft][SQL Native Client]SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. (-1) (SQLDriverConnectW); [HYT00] [Microsoft][SQL Native Client]Login timeout expired (0); [08001] [Microsoft][SQL Native Client]An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (-1)')
答案 0 :(得分:0)
一些可能性:
(1)关于连接字符串的这一部分:SERVER=192.168.1.103\OSBORNE;
...绝对非一般性错误消息的一部分说“”Error Locating Server/Instance Specified
“”“
来自connectionstrings.com的说明:
“”“您使用的是SQL Server 2005 Express吗?请不要错过服务器名称语法Servername \ SQLEXPRESS,您可以使用SQL Server 2005 Express安装所在的计算机名称替换Servername。”“”
如果OSBORNE
不是远程服务器的名称,它是什么?为什么要包含IP地址?
也许你应该OSBORNE\SQLEXPRESS
而不是192.168.1.103\OSBORNE
(2)在错误消息的末尾,它显示“”“当连接到SQL Server 2005时,这种失败可能是由于在默认设置下SQL Server不允许远程连接这一事实。”“ ...您是否检查过(a)SQL Server Express是否支持远程连接(b)是否配置为允许远程连接?
(3)您是否可以使用(a)使用您正在使用的用户ID和密码远程登录到服务器计算机来远程访问数据库(b)您在客户端计算机上运行并使用DSN的查询工具指向远程机器&amp;数据库?如果是这样,连接参数与连接字符串中的连接参数有何不同?