同时安装SQL2000与SQL2005系列相关问题

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

转贴:http://hi.baidu.com/dyyue1983/blog/item/76e567fc100e40f9fd037fd9.html

本来电脑上安装的是SQL2005,后来因项目要求需要安装SQL2000。当时贪图省事,直接就开始安装SQL2000,却未料引起了很多麻烦。

    SQL安装完成之后,便按要求restore项目所用的数据库。但是每次启动程序,它都提示说无法连接到数据库。我再三确认配置文件,并没有问题。看着它每次给我个无法提示的连接,几近崩溃。后来上网搜索了下,回想了一下SQL的安装过程,想到或许是因为实例名称的问题。因为也没有想到其他的解决办法,于是照着这一思路将sql2005和sql2000全部卸载了再重新安装,启动程序,终于成功。

    原来因为先安装了2005,于是在安装2000的过程中提示要修改实例名称。而程序因为只能连接默认实例名称,于是本想让它连到2000却连到了2005,所以才会一直出现无法连接的错误。

    以下引用自网络文章,是在搜索过程中发现的一篇,附上以供参考。

最近因项目要求需要在同一服务器上安装SQL2000和SQL2005,现把安装过程中遇到的问题记录下来,方便遇到同样问题的朋友.

1,因为SQL2000安装过程中无法修改实例名称,故安装过程中必须先安装SQL2000,然后在安装SQL2005.安装SQL2005时必须修改SQL实例名称,否则将和SQL2000的实例名称冲突. (关于此点,本人并不认同。若是先安装sql2005,则在安装sql2000的过程中自会提示你要修改实例名称。)

2,安装完SQL2005后,开始准备用SQL2000客户端工具连接SQL2005,结果报告不能用SQL2000客户端工具连接,只能用SQL2005客户端工具连接,后证明SQL2005客户端工具可以同时连接SQL2000和SQL2005.

3,服务器上安装完成后,准备用远程连接SQL服务器试试,结果始终连接不上SQL2005,只能连接上SQL2000.原来SQL2000服务器用的端口始终是1433端口,而SQL2005使用的是动态端口.那如果用程序连接SQL20005服务器的时候,程序如何知道SQL2005服务器用的是什么端口呢?原来SQL2005提供了一个SQL BROWER服务,开启这个服务后,就可以通过查询SQL BROWER服务 就可以知道SQL2005现在正在使用哪个端口.因为项目需要,需要把这个SQL2005的动态端口改成静态的,修改过程如下:

运行SQL配置管理程序,找到SQL的实例名称下面的协议,双击右边的TCP/IP协议,在第二选项卡中IPALL里面输入SQL运行的端口就可以了(注意不能同时填写动态端口和静态端口,否则SQL下次将无法启动),修改完成后重新启动SQL服务即可生效.

4,修改端口后在连接发现仍然不能连接,原来还需要开启SQL2005的远程登陆服务.

 在Microsoft SQL Server 2005中默认的是不允许远程登录的,会出现【provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错】的错误,下面的方法可以打开:

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

5,远程登陆服务和端口都修改之后连接应该没有问题了吧,结果远程连接SQL2000的时候发现没有问题,但是连接SQL20005依然不行,在SQL2005的客户端连接工具里面需要输入你要连接的SQL服务,SQL2000的直接输入服务器的IP地址即可,那如何输入才能让客户端工具连接到SQL2005的服务呢?既然SQL2005修改了端口,那按照常规的录入格式应该是输入:IP地址+冒号+端口号应该就可以了.结果试了一下发现依然不行.后又修改了客户端的连接的默认端口,结果仍然不行.没办法了只有到网上GOOGLE了一翻,结果终于在一篇英文文章中找到了连接的方法,原来按照常规的格式录入是错误的,需要改成:IP地址+逗号+端口号才行.现在一试果然可以.然后在试着通过.NET程序访问看能否连接,结果都可以.

总结:就是因为连接输入的格式错误就害得我弄了一天才找到办法,真是郁闷,不知道SQL2005为什么不用常规的方法,而要把冒号改成逗号连接......

 其他相关材料

SQL2000和SQL2005的连接字符串其实是一样的,不同的是没有使用默认实例的版本,必须写出实例名

连接默认实例:
Data Source=127.0.0.1;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
连接其他实例:
Data Source=127.0.0.1/SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

上句中:SQLExpress为实例名。
127.0.0.1为本地服务器,可用.替代,如Data Source=./SQLExpress;。