数据库服务器连接错误涉及配置方面的分析和处理,请移步: MSSQL Server 的连接问题分析和解决(1 ) 再来看一个连接错误,如下图1所示: 图中是从本地Serv连接异地Serv做DTS包迁移时的错误提示,本地Serv是SQL2008,而异地Serv是SQL2000。 一、从图中获得的
数据库服务器连接错误涉及配置方面的分析和处理,请移步:MSSQL Server的连接问题分析和解决(1)
再来看一个连接错误,如下图1所示:
图中是从本地Serv连接异地Serv做DTS包迁移时的错误提示,本地Serv是SQL2008,而异地Serv是SQL2000。
一、从图中获得的信息:
图中的提示我们以下信息:
1、网络连接错误。
比如:在与 SQL Server 建立连接时出现与网络相关的错误。
2、实例名称错误。
比如:在与 SQL Server 建立连接时出现特定于实例的错误。
3、实例连接错误。
比如:未找到或无法访问服务器。
同时图中的提示告诉我们建议处理方式:请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
二、实际情况:SQL2000已安装SP4补丁,防火墙等基本的设置都正确。在上述给与的信息中肯定有一个是直接或间接导致错误的信息,这里我们看2 实例名称错误(因为网络连接和访问都没有问题,之前都可以正常访问)。
1、错误提示前输入服务器的连接为USER214,接口输入SA帐号和密码。
2、因为很久未连接SQL2000Serv,所以忘记了实例名和密码。记得异地的SQL2000不是默认实例,所以当默认实例启动时,做如下查询可以获得命名实例名,或者mstsc连接异地Serv查看服务。
如果异地Serv的默认实例也没有启动怎么办?
只能mstsc切到异地Serv并在CMD中输入net start mssqlserver,启动默认实例。比如:
Microsoft Windows [版本 5.2.3790]
C:/Documents and Settings/Administrator>net start mssqlserver
SQL Server (MSSQLSERVER) 服务正在启动 …
SQL Server (MSSQLSERVER) 服务已经启动成功。
启动异地Serv的SQL服务后,执行T-SQL:
–>1启用xp_cmdshell
EXEC sp_configure‘show advanced options’, 1
GO
RECONFIGURE
GO
— 启用xp_cmdshell
EXEC sp_configure‘xp_cmdshell’, 1
GO
RECONFIGURE
GO
–>2查询OS中与数据库相关的服务名
declare @a table (a varchar(200))
insert into @a
exec xp_cmdshell‘sc query state= all’
select CASE WHEN a LIKE ‘%$%’
THEN ‘命令实例‘+REPLACE(a,‘SERVICE_NAME:’,”)
ELSE ‘默认实例‘+REPLACE(a,‘SERVICE_NAME: ‘,”) END
as 服务名
from @a
where a like‘SERVICE_NAME: MSSQL%’ andLEN(a) < 28
–result:
服务名
命令实例 MSSQL$CL05
命令实例 MSSQL$CL2K
默认实例 MSSQLSERVER
3、从返回的结果看到,实际上命名时,异地Serv的SQL2000的实例名是CL2K,所以我们再来看如下图2所示
这仍然是DTS包迁移的数据库连接界面,正确的服务器名称是10.0.0.214/cl2k,1444。
为何是它呢?
USER214/cl2k,1444和10.0.0.214/cl2k,1444的区别是前者通过机器名解析,来&源gao@dai!ma.com搞$代^码%网后者通过IP连接。因为数据库的连接方式都启开TCP/IP。
10.0.0.214/cl2k,1444中表示命令实例为cl2k,而1444是cl2k实例的SQL服务端口,因为异地Serv上配置了SQL2008、SQL2005和SQL2000同时开启TCP/IP连接方式,所以端口做了修改。
-0-总结:该问题从过程看说的有点麻烦,从结果看很简单就是实例名输入错误导致。除了细心就是再细心一点。
Posted by: select left(‘claro’,2) @10:35
lable: SQL