背景
這幾天想寫一個使用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 ].
原文:https://www.cnblogs.com/xwdreamer/archive/2012/06/23/2559344.html