sql2000和sql2005共享的连接问题

时间:2022-08-17 20:24:31

我是先安装了sql2005,实例名是LIUW

后安装了sql2000,实例名是LIUW\SQL2000

旁边一台电脑用查询分析器,通过局域网连接LIUW(sql server 2005)可以成功,链接LIUW\SQL2000会提示“无法连接到服务器 …… SQL Server不存在或无法访问”

为了解决此问题,我先停用了SQL 2005,用netstat -an看到1433端口没有了。看起来是SQL2000的端口问题。

打了SP4然后

打开“程序-Microsoft SQL Server-服务器网络实用工具”,看到SQL2000用的是46170端口。

sql2000和sql2005共享的连接问题

在旁边电脑“查询分析器”输入"192.168.0.57,46170",连接成功,问题解决。

 

参考文章:

http://www.techrss.cn/html/2008/09-12/91290.htm

http://hi.baidu.com/hu1100/blog/item/c339ba8eb003c2fd503d9256.html

 

为防止网页失效,我把内容也拷过来:

 

SQL Server不存在或拒绝访问故障的排除
发布时间:2008-9-12 20:12:02
 
 

    1 问题的提出

  某企业正常使用的一套C/S模式进销存系统,新增加的一台客户机在连接数据库服务器(安装SQL Server 2000)时出现故障提示—“[DBNETLIB][ConnectionOpen(connect()).]SQL Server 不存在或拒绝访问”,系统无法登录,其它的客户机工作正常。

  2 解决过程及思路

  对于这种故障提示,一般资料上对此故障介绍的解决办法是检查客户机上防火墙和1433端口的设置。出现故障的客户机上安装的是卡巴斯基6.0互联网安全套装,在卡巴斯基的“网络设置”中添加1433端口后,出现的故障提示变为“一般性网络错误 (recv())”,造成后面这种故障提示信息的原因很多,不易确定。为此,比较正常工作的客户机和出现故障的客户机的SQL SERVER客户端设置,发现工作正常的客户机使用“Named pipes”为优先使用的协议,使用服务器的名称来连接数据库服务器,出现故障的客户机使用“tcp/ip”为优先启用的协议,使用服务器的IP地址来连接数据库服务器,默认端口为1433,在出现故障的客户机上把 “Named pipes”设置为优先启用的协议,使用服务器的名称来连接数据库服务器则连接正常,可以正常运行。由此确定故障与TCP/IP协议有关,在服务器(Windows 2000 SERVER SP4+SQL Server 2000,IP地址为10.140.90.249)上运行netstat –an命令,结果如下:

      Active Connections
  Proto Local Address Foreign Address State
  ……
  TCP 10.140.90.249:80 10.140.90.52:2519 TIME_WAIT
  TCP 10.140.90.249:80 10.140.90.52:2523 TIME_WAIT
  TCP 10.140.90.249:80 10.140.90.52:2525 TIME_WAIT
  TCP 10.140.90.249:80 10.140.90.52:2527 TIME_WAIT
  TCP 10.140.90.249:80 10.140.90.52:2529 ESTABLISHED
  TCP 10.140.90.249:80 10.140.90.52:2531 ESTABLISHED
  TCP 10.140.90.249:139 0.0.0.0:0 LISTENING
  TCP 10.140.90.249:1051 10.140.90.249:2161 ESTABLISHED
  TCP 10.140.90.249:2161 10.140.90.249:1051 ESTABLISHED
  ……    
    从上述的内容可以看出,服务器上TCP/IP协议中没有打开监听1433端口,在网上搜索关于SQL Server和1433端口有关信息,发现SQL Server 7.0是默认打开1433端口,而SQL Server 2000在SP4以前是默认关闭1433端口的,询问管理员,服务器上曾安装过SQL Server 2000的SP4补丁,由于SQL Server 2000的版本号不显示在“关于”中,于是进入“查询分析器”检查SQL Server 2000的版本号,在“查询分析器”中执行:

  SELECT @@VERSION

  返回值为“8.00.194 RTM”,该值为SQL Server 2000的原始版本,进一步询问管理员,得知在安装SP4时没有停止服务器上的SQL Server服务,而SQL Server 2000 SP4明确要求安装时要停止服务器上的SQL Server服务和所有客户端程序后才能安装,由此判断服务器上的SQL Server 2000 SP4没有安装成功。SQL Server 2000版本和版本号关系可以在网上查到。

  重新在服务器上安装SQL Server 2000 SP4,出现提示“以前进行的程序安装创建了挂起的文件操作。运行程序之前,必须重新启动计算机。”表明以前的SP4没有安装成功,重新启动服务器,这个提示继续出现,启动注册表编辑器,来到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager分支,删除PendingFileRenameOperations项目,然后重新安装SQL Server 2000 SP4成功。再在服务器上执行netstat –an命令,1433端口赫然在列,处于“LISTENING”状态,把出现故障的客户机设置为TCP/IP连接方式,启动程序,连接顺利完成,错误信息不再出现。

  3 结束语

  现在的软件系统越来越复杂,牵扯的系统也越来越多,排除故障时不能被故障的表面现象所迷惑,要顺藤摸瓜,逐步分析排除,到有关软件系统的论坛和官方网站了解相关产品的信息,尤其是补丁信息,在排除故障时才能事半功倍,少走弯路。

  这种故障在单机状态时也会出现,一般是SQL SERVER的客户端TCP/IP设置为优先启用的协议,使用IP地址连接SQL SERVER,网线物理连接有问题或者IP地址设置有问题时。

 

——————————————————————————————————————————————————————————————————————————————————————

 

Sql2000和Sql2005共存安装
2009-02-04 16:09
Sql2000和Sql2005共存安装
2009年01月21日 星期三 12:56
首先说明的是两个版本的数据库安装次序没有先后之分,主要后一安装版本一定要另外创建实例,就可以并存。
这里假设已安装了 Sql2000,下面开始安装Sql2005
运行光盘
选择“服务器组件、工具、联机丛书和示例”。

接着是许可协议
然后是进行安装前的支持组件安装、扫描计算机配置
在安装向导里,sqlserver 2005安装程序会对系统进行配置检查
接下来输入注册信息;选择要安装的组件,在这个过程中可以点击"高级"来选择安装路径

接下来在实例名中这是关键的一步,如果机子上没有别的Sql版本的,选择默认实例名就行了,但是由于已装有Sql2000,所以这一步得选新实例名,然后输入实例名

接着到服认证模式选用混合认证模式,同时设置sa密码;剩下部分的安装都选默认值,一路“下一步”,最后安装,完成!
至此两个版本的数据库实现并存。

两个版本数据库共用中的一些问题
  • SQL2000客户端工具无法连接SQL2005,SQL2005客户端工具可以同时连接SQL2000和SQL2005.
  • SQL2000服务器始终是1433端口,SQL2005使用的是动态端口。通过SQL2005提供了一个SQL BROWER服务,开启这个服务后,就可以通过查询SQL BROWER服务知道SQL2005现在正在使用哪个端口。当然也可以把SQL2005的动态端口改成静态的,修改过程如下:运行SQL配置管理程序,找到SQL的实例名称下面的协议,双击右边的TCP/IP协议,在第二选项卡中IPALL里面输入SQL运行的端口就可以了(注意不能同时填写动态端口和静态端口,否则SQL下次将无法启动),修改完成后重新启动SQL服务即可生效。
  • 修改端口后如果仍然不能连接,需要开启SQL2005的远程登陆服务。在Microsoft SQL Server 2005中默认的是不允许远程登录的,会出现【provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错】的错误,通过如下方法可以打开:

    配置工具->sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以。

  • 假设同时装了sql2000(端口1443)和sql2005(端口1433),应用程序连接字符串用server=127.0.0.1可以访问sql2005,用server=机器名/实例名可以访问sql2000
    问题在于:用server=127.0.0.1:1443访问sql2000不成功
    如果远程访问数据库家端口,写法如下:
    逗号分隔 server=127.0.0.1,1443
http://hi.baidu.com/grrc/blog/item/3a7d19c7309f48dbd0006038.html