查看sqlserver的端口号

背景

  这几天想写一个使用java连接sqlserver的数据库连接测试程序。但是在查看数据库连接字符格式以后发现需要sqlserver数据库服务的端口号。在安装sqlserver的时候也没有提到端口号的问题,以前安装mysql的时候倒是见到过3306这个端口号,安装oracle的时候1521这个端口号也没有看到。不过oracle连接的时候都用的是1521,比如oracle的的数据库连接字符串格式为:jdbc:oracle:thin:@localhost:1521:SID。不知道安装两个oracle数据库是否还是1521这个端口号。

通过存储过程查看

  闲话莫提,我们直接讲解如何查看端口号。需要提的是在我的机器上安装了sqlserver2008和sqlserver2012两个版本的数据库。我们首先打开sqlserver management studio(简称SSMS)连接sqlserver2008的数据库实例,然后执行如下存储过程:

--查询端口号
exec sys.sp_readerrorlog 0, 1, 'listening'

查询出来的结果如下图所示:

从上图我们可以看出sqlserver2008的端口号是5419。

接下来关闭SSMS,再从重新打开,接着连接sqlserver2012。继续执行上述的存储过程,查询结果如下图所示:

上图说明sqlserver2012的端口号是5413。

通过Sql Server配置管理器(SSCM)

首先打开SSCM,如下图所示:

然后再sqlserver网络配置中开启TCP/IP协议,如下图所示:

在这里我们要将SQLEXPRESS和SQL2012两个协议中的TCP/IP协议都开启。

然后查看TCP/IP协议的属性,如下所示:

如上图所示,我们在IPALL中看到了“TCP动态端口”的值为5419,这就是我们sqlserver2008的端口号。我们打开sql2012的协议查看,发现IPALL属性如下:

sql2012的端口号是5413,这个跟我们用存储过程查出来的端口号一模一样。

通过sp_readerrorlog来查看sql server监听的协议以及端口(补充:2012-9-10)

在SSMS中输入sp_readerrorlog命令来查看sql server信息,回到到如下类似的监听信息:

--tcp协议
Server is listening on [ 'any' <ipv6> 1500].
Server is listening on [ 'any' <ipv4> 1500].
Server is listening on [ 'any' <ipv6> 1433].
Server is listening on [ 'any' <ipv4> 1433].
Server is listening on [ ::1 <ipv6> 1434].
Server is listening on [ 127.0.0.1 <ipv4> 1434].
--named pipe协议无法关闭,即使关闭以后也会有local connection provider
Server local connection provider is ready to accept connection on [ \\.\pipe\sql\query ].
--share memory
Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\MSSQLSERVER ].

这是在关闭named pipe的情况下,如果开启named pipe的话,那么会是如下类型:

--开启named pipe
Server named pipe provider is ready to accept connection on [ \\.\pipe\sql\query ].

在sql server是无法关闭本地named pipe协议的

 

 

 

 

posted @ 2012-06-23 15:49  xwdreamer  阅读(248843)  评论(3编辑  收藏  举报