Win Server 2008 上架设 SQL Server 2008 服务器的相关网络配置

最近出去面试了几次,发现很多企业都不用Oracle的,可惜我的3年Oracle开发经验呀!为了混口饭吃,也为了提高自己,开始着手学习SQL Server。

先说下我的系统环境:我用的是Win7,我准备将SQL Server 2008 安装到虚拟机内,免得一开机就占用了巨大的内存,影响我平时使用Win7的体验。在虚拟中安装了一个 Win Server 2008 x64 版,然后安装SQL Server 2008 Enterprise,安装好后发现在Win7里就是连不上虚拟机中的SQL Server 2008。

刚开始一直认为是 Win Server 2008 防火墙的原因,就在网上找如何设置Win Server 2008防火墙才能正常使用SQL Server 2008,找到了如下官方配置方法:

http://msdn.microsoft.com/zh-cn/library/cc646023.aspx

大意就是说在防火墙规则中新增一个入站规则,允许TCP端口1433的所有远程连接。设置保存后仍然无法连接,报错如下:

image

后来我干脆直接将主机Win7的防火墙和虚拟机Win Server 2008的防火墙全部关闭,但是依旧报出同样的错误。这就应该不是防火墙的问题了。

那到底是哪里还需要设置呢?仔细读了两遍报错信息,发现第三句话最有嫌疑:“请验证实例名是否正确并且 SQL Server 已配置为允许远程连接。”忽然想到有一个“SQL Server 配置管理器”可以设置通过哪些连接方式来连接SQL Server,打开配置管理器,在左边选择SQL Server 网络配置,然后选择对应实例的协议,如下图:

0001

这里右边可以看到“TCP/IP ” 为禁用状态,原因应该就在这里了。双击“TCP/IP ”,弹出如下界面:

0002

在“已启用”右侧选择“是”,然后“确定”。又弹出如下提示:

0003

告诉我们必须重启SQL Server 实例以后设置才会生效,那就重启呗。在配置管理器左边选择“SQL Server 服务 ”,然后在右侧选择“SQL Server (MSSQLSERVER) ”(我这里安装的企业版,如果是Express学习版,这里的括号里面应该是SQLEXPRESS),接着点一下工具栏中的重启服务按钮,如下图:

0004

等待SQL Server 实例重启完毕,我就满怀信息地在Win7中继续使用VS2010去测试连接,但是那个令我抓狂的报错画面又出现了:

image

仔细对比发现这个报错画面和上次的报错画面还是有区别的,最后一句话里的报错内容是:连接字符串无效。仔细想了一下,难道是实例名的问题?记得之前连接SQL Server Express 实例的时候服务器名一栏是按照:服务器名\SQLExpress 的格式来填写的,所以这次我也依葫芦画瓢,填写内容如下图:

image

莫非SQL Server Enterprise 版的连接的时候不需要填写实例名?带着尝试一下的心态,我讲斜杠以及后面的实例名全部去掉,只保留服务器名,结果久违的测试连接成功的提示终于出来了:

image

到这里,总算让我看到了一点成功的影子。接着我讲Win7和Server 2008的防火墙都打开,同时确认了一下Server2008防火墙中是否加入了TCP1433端口的入站规则,然后再到Win7中用VS2010测试连接,这次顺利提示测试连接成功。

至此,我在Win Server 2008中架设SQL Server 2008服务器的环境终于可以工作了,总结配置方式,一共有一下几点需要注意:

1.确保Win7可以解析虚拟机Win Server 2008的服务器名,用ping测试一下就知道了。

2.确保Win Server 2008防火墙中添加了TCP1433端口的入站规则,当然如果你更改了SQL Server的默认端口,这里就不是1433了。

3.确保在SQL Server 配置管理器中对应实例启用了TCP/IP协议,这样才能在局域网中访问这台SQL Server 服务器。(很多网上的资料都没都没有说这一点。)

4.如果安装的是SQL Server 2008 Enterprise 版,且连接的是默认实例,则服务器名中不需要出现实例名。

 

以上是我开始学习架设SQL Server 2008服务器时的一些经验教训,希望和我一样的小菜不要再走这样的弯路。

posted @ 2011-07-11 15:25  享受代码  阅读(1560)  评论(0编辑  收藏  举报