现象:SQL Server不监听TCP 1433端口,连UDP 1434端口也没有监听。解决:1、分析日志发现如下一条:事件类型:        信息事件来源:        MSSQLSERVER/MSDE事件种类:        无事件 ID:        1日期:                2006-2-27事件:                12:17:54用户:                N/A计算机:        XUJUN-7AHAD9QR9描述:您运行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也称为 MSDE) 和 Microsoft Windows Server 2003 家族使用时存在已知的 安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 或  http://www.microsoft.com/china/sql/downloads/default.asp 安装一个修补程序, 或 Microsoft SQL Server 2000 或 MSDE 的最新服务包。很明显,由于SQL SERVER存在安全漏洞,服务器自动把它的1433和1434端口屏蔽掉了。  查看它的版本,果然,装完SQL2000后没有打任何SP补丁。打上SP4,重启。发现服务器现在监听UDP1434,但依旧不监听TCP1433端口。2、打开企业管理器,查看SQL Server服务器属性,打开“网络实用工具”面板。查看已启用的协议,发现已启用命名管道和TCP/IP,打开TCP/IP属性,上面默认端口为1433,隐藏服务器选项为空。这样配置没有任何问题。3、在网上查资料,说是启用一下Windows Socket代理。 ip设置为服务器IP,端口设置为1433,重启服务器,无效。4、在注册表里寻求解决之道。[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib] "ProtocolList"= np tcp  (原来是用十六进制代码写)[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp]"TcpHideFlag"=dword:00000000"TcpPort"="1433""TcpDynamicPorts"=""原来TcpPort上没有任何值,(我本机上也没有任何值,且是可以正常工作的)同时我在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib]项下看到一个VIA的项,我删除了它下面的所有值,保留了一个默认值为(数值未设定)。这个时候,再回头看TcpPort一项,上面便自动填写了一个1433端口。奇怪。注册表里到处看了看,但是再也没有动过。重启一下,很奇怪,服务器不监听1433,但发现有一个进程监听2433端口。更奇怪了。 打开SQL server的网络工具,查看Tcp/IP属性,果然是2433。 下载一个端口连接查看器,的确是SQL Server在监听它。 5、在注册表和企业管理器里同时确保端口是tcp 1433,然后重启,生效!问题解决了,但是知其然,还未知其所以然。要努力学习呀!

03-15 12:42