SQL Server無法連接客戶端的問題

SQL Server 客戶端連接的問題

 

  SQL Server 客戶端無法連接到SQL Server 實例(服務)問題歸納:

 

一、SQL Server 實例(服務)的問題

wKiom1Vn2z-B9S0WAAHTrKIN064798.jpg

1、實例(服務)未啓動

  打開“SQL Server 配置管理器”(或者“管理工具”中的“服務”),檢查對應的實例(服務)的狀態是否爲“正在運行”(或者“已啓動”)。如果該實例沒有啓動(甚至客戶端在連接時使用了錯誤的主機名和實例名),這個時候客戶端當然連接不到SQL Server數據庫了。

wKiom1NLaRLBNLR0AAMMXCxz8lU385.jpg

 

 

2、網絡通訊協議未啓用

  如果客戶端使用網絡協議去連接SQL Server,那麼就要求SQL Server的實例(服務)也要啓用相應的網絡協議。一般可能出現有2種狀況:

  1. 發現在 SQL Server 本機可以訪問,但是客戶端不行。這是因爲,從 SQL Server 2005 開始,本地訪問時默認使用 Shared Memory(可以理解爲直接去內存中訪問),而遠程客戶端是不可能使用Shared Memory 的。

  2. 修改了網絡配置,啓用了 TCP/IP 協議,務必記得重啓 SQL Server 實例(服務),不然就沒有生效。

wKiom1NLadDhDZQZAAGeIy9HJfE551.jpg

 

3、TCP/IP 端口配置

  對於 TCP/IP 協議,請注意端口的配置。

(1) 是否“全部偵聽”

  如下圖,此時“協議”選項卡的“全部偵聽”爲“是”,表示本機所有的網卡都使用相同的配置,即所有網卡都使用同一個TCP端口號碼提供連接(忽略每一塊網卡獨立的配置信息,只使用 IPAll節點的配置)。

wKioL1NLbLywKq_nAAGqGaUR6-g469.jpg

 

wKiom1NLbYSxoYoKAAEDQcPIJ54247.png

 

  如果“全部偵聽”設置爲“否”,那麼這臺服務器的每一塊網卡都可以獨立配置“TCP端口”以及“已啓用”。

 

(2) 動態端口

  如果“TCP動態端口”設爲0,那麼將使用動態端口。

  由於動態端口在每次啓用SQL Server實例(服務)時都可能改變,所以客戶端訪問時將自動向這臺服務器的 UDP 1434 端口查詢,詢問對應的 SQL Server 實例(服務)的當前端口。UDP 1434 對應的服務是 SQL Server Browser,它負責向客戶端返回其查詢的SQL Server實例(服務)對應的TCP端口。

  因此,如果啓用了動態端口,請啓動 SQL Server Browser 服務。

wKioL1NLbyPRrf2QAALSDlr4tJ8557.jpg

 

(3) 查看端口狀態

  例如,對於默認實例,可以使用 netstat 命令檢查 TCP1433 端口是否打開。

wKiom1VK4vCAPpDNAAKkF3kK81Q046.jpg

 

 

4. 總結

  對於實例(服務)的問題,可以直接查看啓動日誌,啓動日誌一般爲ERRORLOG(沒有後綴),通常位於 C:\Program Files\Microsoft SQL Server\<實例ID>\MSSQL\Log 文件夾。

wKioL1Vn22Kxm45VAAJPGWmdww4994.jpg

 

 

二、網絡問題

1. 防火牆

  由於 Windows 2008 及後續版本增強了安全性,因此在安裝 SQL Server 時並不會自動打開防火牆端口。

wKioL1NLa82zg5mOAALiCtiAKrU387.jpg

 

  關於防火牆的配置,請參考 “http://jimshu.blog.51cto.com/3171847/590411爲SQL Server 開放端口”。

 

2. DNS

  這裏又可能出現兩種常見問題。

(1)主機名錯誤

  如果填寫了錯誤的主機名,例如 localhsot,肯定連接不上。

 

(2)DNS服務器

  如果是DNS服務器的問題,建議在連接之前先嚐試 PING。同樣要注意,PING也需要目標計算機打開防火牆端口。

 

 

三、帳戶與密碼錯誤

1. 訪問權限的問題

  客戶端訪問時使用的某個帳戶沒有權限,當然也就不能訪問 SQL Server。

 

2. 帳戶被禁用

  例如,默認情況下sa帳戶被禁用,需要手動修改爲“已啓用”。

wKioL1NUl5yzLs_qAAMEOVHti1c595.jpg

 

3. 如果是SQL帳戶登錄

  如果在安裝SQL Server時就指定身份驗證模式爲“混合模式”,那麼就可以允許SQL Server帳戶,否則只允許Windows帳戶。
wKioL1NLeYryDZFHAADup6PsA6U309.png


  安裝完成之後,如果要修改身份驗證模式,可以通過SQL Server Management Studio修改。修改後需要重啓該SQL Server實例(服務)纔會生效。
wKiom1NLecHBtDTVAAEOExwvl80750.png

 

4. 總結

  帳號的問題比較簡單,通常報錯信息比較明顯。

wKioL1Vn3CPS194sAACmoEsgWC4485.jpg

 

 

附錄:

  附件是舒老師在培訓時寫給學員的一個用於測試客戶端連接的小工具。

wKiom1Vn15aBHeM5AAL2UoXguRc861.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章