Server=127.0.0.1;Database=...;Uid=sa;Pwd=... 無法連線,拋出網路錯誤。192.168.1.100 或 127.0.0.1)提示「無法連線」或「逾時」。localhost 或 . 卻能正常連線。SQL Server 預設安裝後,**Shared Memory**(共用記憶體)協定啟用,**TCP/IP 常為停用**。本機用 Shared Memory 連線無問題,跨機器或用 IP 則必須走 TCP/IP。
路徑:C:\Windows\System32\drivers\etc\hosts
以記事本(系統管理員)開啟,確認包含:
127.0.0.1 localhost
::1 localhost
若缺漏請補上,存檔後重啟電腦(或執行 ipconfig /flushdns)。
| 項目 | 檢查方式 |
|---|---|
| Windows 防火牆入站規則 | 控制台 → 進階安全性 → 入站規則 → 新增規則 → 連接埠 → TCP 1433 → 允許連線 |
| 防毒軟體/第三方防火牆 | 暫時關閉測試,確認後加入例外 |
| SQL Browser 服務 | 若使用具名執行個體(如 .\SQLEXPRESS),需啟用 SQL Browser 服務(UDP 1434) |
| 網路連通性 | 客戶端 telnet <ServerIP> 1433 或 Test-NetConnection -Port 1433 驗證 |
| 錯誤記錄 | SSMS → 管理 → SQL Server 記錄 → 目前錯誤記錄,搜尋「TCP」或「1433」 |
Server=192.168.1.100,1433;Database=MyDB;User ID=sa;Password=******;Encrypt=False;TrustServerCertificate=True;
Server=192.168.1.100\SQLEXPRESS;Database=MyDB;User ID=sa;Password=******;
建議明確指定連接埠(,1433),避免依賴 SQL Browser 解析失敗。
「IP 連不上、本機卻 OK」90% 是 **TCP/IP 未啟用或通訊埠錯誤**。依照「設定管理員 → 啟用 TCP/IP → 固定 1433 → 重啟服務 → 防火牆放行 → Hosts 檔確認」六步驟,絕大多數情況即可解決。下次遇到連線問題,請先打開設定管理員看一眼 TCP/IP 狀態,別再猜測帳號密碼了。