一.原因
前几天师弟的电脑突然说自己的sql2005的实例无法打开,说是卸载了360之后就出现问题,于是就怀疑是360搞的鬼,说什么重启了也无法解决,在SQL SERVER Configuration Manager 里面也开启不了sql server 的服务,之前还是好好的,于是自己就百度了一些,说是因为1433的端口被占用了,导致sql2005的实例无法开启
二.解决方案
1.查看1433端口
打开cmd命令窗口,输入:netstat -aon|findstr "1433",然后在最后一列就可以看到占用1433端口的程序的pid
,在任务管理器里面的通过 查看 下的选择列把PID勾选上,然后就可以在进程里面看到相应的PID对应着什么程序了。
当然,详细的信息可以输入 netstat -ano,查看
2.查看占用1433端口的程序、实例
但是我看到的是sqlerver占用了这个端口,于是就再服务里面我继续查找,可以看到express这个实例把端口给占用了,于是我就用sql2005的企业管理器打开EXPRESS这个实例看看,但是提示错误信息说sql2005的sql management studio只能打开sql2000 以及 sql2005的实例,这说明,EXPRESS这个实力是更高级的版本的,于是就想到了安装VS2010的时候同时也安装了sql server的EXPRESS版本里面安装了一个EXPRESS的实例,看来是两个实例是同时占用1433的这个端口然后导致这个问题了。
3.关闭实例
所以就打开sql server 2008的SQL SERVER Configuration Manager 把EXPRESS这个实例给关闭了,然后就OK了
三.思考
为什么我们同时装了sql2005以及sql2008的就没有这样的一个问题呢?于是,我自己就使用netstat -ano查看那些实例到底是占用了那些端口,最后可以看到,sql2008的那些实例所占用的端口并没有跟sql2005所占用的实例有冲突,所以这些实例都顺利地可以打开。