提要:
近日开发某项目的时候对数据库产生要求,因为数据库服务器可能与本机不在一台服务器上。
而数据库服务器由于开发需要同时安装了MS SQL2005和MS SQL2000,实例名分别为 SQL2005 和 SQL2K。
这时,通过网络访问便出现问题了。
描述:
本地主机(客户端) IP 10.16.33.12,主机名 CHUMP
本地安装了数据库服务器(同时安装两个版本,如上所述),先运行了 SQL2K 的实例。
问题以前的情况:
访问本地服务器通过如下方式访问:
1,企业管理器、查询分析器中填入数据库地址如下: CHUMP/SQL2K
2,程序代码中(ASP/ASP.net/VB.net/etc.),连接字符串配置部分如下:
Address=CHUMP/SQL2K
或:
Address=(local)/SQL2K
上面的代码在本地局域网的时候工作很好,可是一旦要跨网络访问(如访问IP是 210.45.*.*)的数据库主机的时候却怎么也连接不上,比如下面的访问方案经过测试都已经确认是失败的:
1.Address=10.16.33.12/SQL2K
2.Address=10.16.33.12
3.Address=//10.16.33.12/SQL2K
4.Address=(10.16.33.12)/SQL2K
在百度上未搜索到任何解决方案。
经过多方探索,并参考SQL Server的联机丛书后,得到如下解决方案:
1.在数据库服务器上打开企业管理器(以SQL2K为例),并展开左侧树节点找到本地数据库服务器;
2.在数据库上点击右键,选择“属性”,如下图所示:
3.在打开的“属性”页中,选择“常规”,“网络配置”
4.如果没有启用“TCP/IP”协议,则将其允许。
5.点击TCP/IP协议,点击“属性”,即可看到TCPIP的端口配置,可以修改(推荐在1024)以上
6.确定后依次关闭对话框,并重新启动服务器。
7.3-6步骤如下图所示:
此时的解决方案:
1,企业管理器、查询分析器中填入数据库地址如下:
10.16.33.12,1262 [格式是:IP地址,端口号]
2,程序代码中(ASP/ASP.net/VB.net/etc.),连接字符串配置部分如下:
Address=10.16.33.12,1262;
[格式是:IP地址,端口号]
此时即可正常使用。
3.VS.net中的服务器资源管理器中,可以添加数据连接,按照上面类似的结构。
值得注意的是,在这样的情况下,集成身份验证是无效的,必须用账户密码登陆。