安裝多個版本Sql時訪問出錯的原因

2022-02-07 10:44:03 字數 1872 閱讀 1343

1、問題出現的原因:

預設的sql的連線埠是1433,當低版本安裝之後埠被占用,高版本使用的時候會自動指定乙個其他的埠號,此時客戶端連線的時候使用預設的埠號的話就不能連線上正確的資料庫例項。

2、解決方案:

如果乙個物理伺服器上面有多個sql server例項,那麼為了確保客戶端能訪問到正確的例項,所以sql server 2005提供了乙個新的browser服務。此時需要將sql server browser服務啟動即可正常訪問。

3、服務簡介:

sql server 瀏覽器程式以 windows 服務的形式執行。sql server 瀏覽器偵聽對 microsoftsql server 資源的傳入請求,並提供計算機上安裝的 sql server 例項的相關資訊。sql server 瀏覽器可用於執行下列操作:

瀏覽可用伺服器列表

連線到正確的伺服器例項

連線到專用管理員連線 (dac) 端點

sql server browser 服務 (sqlbrowser) 為資料庫引擎和 ssas 的每個例項提供例項名稱和版本號。sql server 瀏覽器隨 sql server 一起安裝,為該計算機上執行的早期版本的 sql server(從 sql server 7.0 開始)提供此服務。

sql server 瀏覽器可以在安裝過程中進行配置,也可以使用 sql server 配置管理器進行配置。預設情況下,sql server browser 服務會自動啟動:

公升級安裝時。

與 sql server 2000 例項並行安裝時。

在群集上安裝時。

安裝包括所有 sql server express 例項的sql server 資料庫引擎的命名例項時。

安裝 analysis services 的命名例項時。

4、工作原理:

啟動乙個 sql server 例項後,如果為 sql server 啟用了 tcp/ip 或 via 協議,伺服器將被分配乙個 tcp/ip 埠。如果啟用了 named pipes 協議,sql server 將偵聽特定的命名管道。該特定例項將使用此埠(或"管道")與客戶端應用程式交換資料。在安裝過程中,tcp 1433 埠和管道 \sql\query 將分配給預設例項,但伺服器管理員可以隨後使用 sql server 配置管理器進行更改。由於只有乙個 sql server 例項可以使用埠或管道,因此,會將不同的埠號和管道名稱分配給命名例項,包括 sql server express。預設情況下,命名例項和 sql server express 在啟用時便配置為使用動態埠,也就是說,當 sql server 啟動時就分配了可用埠。如果需要,可以為 sql server 例項分配特定埠。連線時,客戶端可以指定特定埠,但是如果埠是動態分配的,埠號可能會在重新啟動 sql server 時被更改,因此正確的埠號對於客戶端來說是不確定的。

啟動後,sql server 瀏覽器將啟動並使用 udp 1434 埠。sql server 瀏覽器將讀取登錄檔,識別計算機上的所有 sql server 例項,並註明它們使用的埠和命名管道。當一台伺服器具有兩個或多個網絡卡時,sql server 瀏覽器會為 sql server 返回其遇到的第乙個已啟用的埠。sql server 瀏覽器支援 ipv6 和 ipv4。

當 sql server 客戶端請求 sql server 資源時,客戶端網路庫將使用 1434 埠向伺服器傳送一條 udp 訊息。sql server 瀏覽器將用請求的例項的 tcp/ip 埠或命名管道做出響應。然後,客戶端應用程式中的網路庫將使用所需例項的埠或命名管道向伺服器傳送請求來完成連線。

安裝多個sql例項之後要想能正確的訪問到正確的例項,需要將每個例項對應的sql server browser服務啟動,若安裝3個不同sql版本的例項而只啟動2個sql server browser服務的話也還是會導致資料庫訪問不正常的。

筆記 Spark訪問web主節點訪問出錯的原因

我在spark安裝好之後,檢視web主節點的資訊時,頁面 http master 8080無法訪問。一開始我以為埠被占用了,結果後來發現是主機hosts的配置錯了。注意 我用的是root賬戶。1.埠號被占用的情況。1.1 首先檢視一下埠有沒有被占用 root master lsof i 8080如果...

位域結構體多執行緒訪問出錯的問題分析

位域結構體能節省一些記憶體空間,但是使用不當會產生race conditions,導致程式異常,下面簡要分析錯誤產生的原因和解決方案。首先定義乙個簡單的bit field結構體。struct bit filed val int test bitfield1 void int test bitfiel...

npm安裝時出錯(npm版本不支援)

原文 遇到相同的問題,借鑑文中解決過程,已解決問題 原因 npm版本不支援node版本,也就是需要公升級npm版本 檢查npm和node版本,在命令視窗中分別使用npm v node v 檢視版本 按照node.js以往的版本對照,如下 根據自己的node版本來更新npm npm g install...