[08001] [Microsoft] [SQL Server Native Client 11.0] 命名管道提供程序:無法打開與SQL Server的連接


[08001] [Microsoft] [SQL Server Native Client 11.0] 命名管道提供程序:無法打開與SQL Server的連接


提出問題

你是否遇到過以下的問題呢?使用Navicat等第三數據庫管理工具連接SQL Server時出現如下圖的錯誤:

【08001】無法打開與SQL Server的連接

燃鵝,用MSSM連接卻可以連接,從后面我們知道,第三方數據庫管理軟件一般通過TCP/IP來連接管理的。而MSSM就是采用的Shared Memory來進行連接管理的,因此不走TCP/IP這條道,那么就可以連接並進行管理。

MSSM

在配置中,從客戶端協議順序來看,可以得知。


說了那么多,那么怎么解決呢?

  • 保證所有SQL Server相關服務處於運行狀態。 當然,如果你使用MSSM可以連接管理的話,我想你相關服務應該是沒問題的。

  • 打開SQL Server配置管理器,展開 SQL Server 網絡配置 - xxxx 的協議(注:xxxx 為你SQL Server名稱),在右側協議列表中,雙擊打開 TCP/IP屬性, 首先保證狀態為 。 在IP地址選項卡一欄,下拉到最后一項設置,名為 IPALL,此表示所有本地IP地址的統一設置。此時,在 TCP動態端口 填入 1433 (注:SQL Server 默認端口是 1433 ,當然你可以指定其它合法不被占用端口也行,不過連接時需要指定端口,因此不建議修改成其它端口號)

修改所有訪問端口為1433

  • 修改完成后,點擊確定,會提示重啟所有相關SQL Server服務生效,那么就重啟所有SQL Server服務吧。

重啟SQL Server相關服務

  • 怎么樣?此時用Navicat等第三方工具連接SQL Server是不是成功了呢。


如果還不行呢?

如果還不能進行連接管理的話。。。好吧,其實我這樣設置后,我也是登錄不進去,不管是用Windows身份驗證登錄還是使用SQL Server身份驗證都不行。那我怎么解決呢?請看:

  • 服務器屬性 - 安全性選擇頁,右側 服務器身份驗證 下,雖然 我之前使用的就是 SQL Server 和 Windows身份驗證模式,不過也之前也用 MSSM 管理工具分別使用了兩個身份驗證模式是可以的,但是用第三方工具就是不可以。因此,在此處我將服務器身份驗證修改成Windows身份驗證模式重啟相關SQL Server服務,然后再使用Navicat第三方管理工具連接並使用Windows身份驗證模式進行登錄,發現竟然可以連接成功了!

通過Windows驗證登錄成功

  • 然后我又切換回SQL Server和Windows身份驗證模式重啟相關SQL Server服務后,再使用Navicat第三方管理工具連接並使用SQL Server身份驗證模式進行登錄,也同樣成功連接了。

  • 因此,就搞定了啦!

附錄

下面是一個關於JBDC訪問SQL Server數據庫的小摸索,比如當我使用SQL Server身份驗證模式訪問新建的數據庫stu時,出現了以下錯誤:

數據庫連接失敗

同樣的,我使用Windows身份驗證模式登錄訪問這個stu表時,卻是可以正常訪問的。

那么問題在哪呢?

好吧,我記起來了,我新建stu這張表是以Windows身份驗證模式登錄的,所以現在我以SQL Server身份驗證登錄並對其進行訪問是行不通的,也是合情合理的。

如果要解決這個問題呢,那就找到相關數據庫(即stu數據庫),右鍵 - 屬性,在數據庫屬性 - 權限 ** 選項卡下,對用戶或角色為 public 的這個角色進行相關權限的授予**。

數據庫授權

完成后,確定修改。再次訪問時,就可以訪問啦。

連接成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM