积极答复者
查询远程SQL服务器出错;

问题
-
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB',null, 'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;' exec sp_serveroption N'hooyesRemoteDB', N'rpc out', N'true' exec sp_serveroption N'hooyesRemoteDB', N'rpc', N'true' exec sp_addlinkedsrvlogin 'hooyesRemoteDB','False',null,'sa','hooyes' --// 192.168.0.218 有数据库TestDB 和其中的表tb2 select * from hooyesRemoteDB.TestDB.dbo.tb2 /* 执行以上操作 报以下错误: 链接服务器"hooyesRemoteDB"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。 链接服务器"hooyesRemoteDB"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。"。 消息 53,级别 16,状态 1,第 0 行 命名管道提供程序: 无法打开与 SQL Server 的连接 [53]. 链接服务器"hooyesRemoteDB"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "无效的连接字符串属性"。 */ /* 192.168.0.218 服务器 已经开启了充许远程连接;开启了1433端口;开启TCP/IP连接; 为何出现如此错误呢? */
答案
-
如果你按照原来的语句创建:
现在查的结果是: 192.168.0.218
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
执行select data_source from sys.servers后的结果应该是
hooyesRemoteDB, 而不是你上面的192.168.0.218
stswordman
应该是正确的还是错误的呢?
依然出现错误.
stswordman 您觉得还有哪个地方没有设置正确吗?- 已标记为答案 KeFang Chen 2009年4月3日 10:10
-
參照方法:
http://topic.csdn.net/u/20080612/22/bb2dfa83-1cf3-4a0b-9bd4-5a39e6193556.html
檢查連接的賬號是否啟用,登陸模式是否為混合
吳熹- 已标记为答案 KeFang Chen 2009年4月3日 10:09
全部回复
-
如果你的目标机器已经允许远程访问,
那检查你的数据源是否输入正确,就是@DataSrc那个参数,
也就是你代码的第四个参数
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB(就是这个)',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
这个是指你要连接的数据源,
执行以下语句
select *from sys.servers
查看你创建的linkedserver的data_source是否是数据源。 我看到你的linkedserver的名称和数据源是相同的,都是hooyesRemoteDB...
那个192.168.9.218又是什么呢? 是不是这个ip地址才是数据源? 如果是的话替换过去,如果数据源是命名实例,需要将实例名也加上去
stswordman -
执行:
如果你的目标机器已经允许远程访问,
那检查你的数据源是否输入正确,就是@DataSrc那个参数,
也就是你代码的第四个参数
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB(就是这个)',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
这个是指你要连接的数据源,
执行以下语句
select *from sys.servers
那个192.168.9.218又是什么呢? 是不是这个ip地址才是数据源? 如果是的话替换过去,如果数据源是命名实例,需要将实例名也加上去
stswordman
select *from sys.servers
结果为:
server_id name data_source
1 hooyesRemoteDB 192.168.0.218
有什么异常吗?
-
如果你按照原来的语句创建:
现在查的结果是: 192.168.0.218
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
执行select data_source from sys.servers后的结果应该是
hooyesRemoteDB, 而不是你上面的192.168.0.218
stswordman
应该是正确的还是错误的呢?
依然出现错误.
stswordman 您觉得还有哪个地方没有设置正确吗? -
如果你按照原来的语句创建:
现在查的结果是: 192.168.0.218
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
执行select data_source from sys.servers后的结果应该是
hooyesRemoteDB, 而不是你上面的192.168.0.218
stswordman
应该是正确的还是错误的呢?
依然出现错误.
stswordman 您觉得还有哪个地方没有设置正确吗?- 已标记为答案 KeFang Chen 2009年4月3日 10:10
-
如果你按照原来的语句创建:
现在查的结果是: 192.168.0.218
exec sp_addlinkedserver 'hooyesRemoteDB','','SQLOLEDB','hooyesRemoteDB',null,
'driver={SQL Server};server=192.168.0.218;uid=sa;pwd=hooyes;'
执行select data_source from sys.servers后的结果应该是
hooyesRemoteDB, 而不是你上面的192.168.0.218
stswordman
应该是正确的还是错误的呢?
依然出现错误.
stswordman 您觉得还有哪个地方没有设置正确吗?
要这样写? 192.168.0.218,1433 ? -
參照方法:
http://topic.csdn.net/u/20080612/22/bb2dfa83-1cf3-4a0b-9bd4-5a39e6193556.html
檢查連接的賬號是否啟用,登陸模式是否為混合
吳熹- 已标记为答案 KeFang Chen 2009年4月3日 10:09