SSMS 無法連接到 Azure 數據庫
我有一台新的 Windows 10 機器並安裝了最新版本的 SQLEXPRESS,然後安裝了最新版本的 SSMS (17.9.1)。
嘗試連接到我的 Azure 數據庫時,出現以下錯誤。
連接到“mydb.database.windows.net”時出錯。
- 附加資訊:
未能為此請求檢索數據。(Microsoft.SqlServer.Management.Sdk.Sfc)
執行 Transact-SQL 語句或批處理時發生異常。(Microsoft.SqlServer.ConnectionInfo)
從伺服器接收結果時發生傳輸級錯誤。(提供者:TCP 提供者,錯誤:0 - 現有連接被遠端主機強行關閉。)(Microsoft SQL Server,錯誤:10054)
現有連接被遠端主機強行關閉
到目前為止我已經嘗試過:
- 解除安裝/重新安裝 - 不。我做了兩次
- 關閉防火牆 - 沒有用。此外,我可以通過 Visual Studio 2017 很好地連接到數據庫,所以這不是防火牆問題。我還用 netstat 驗證了在我遠端登錄到伺服器後埠是打開的。
- 不同的版本 - 我嘗試降級到 SSMS 版本 17.9,但我得到了同樣的錯誤。我正在開發 18.0(預覽版 5),只是想看看有沒有什麼適合我的。我可能會在這裡更新這是否適合我。
- 不同的數據庫 - 我有兩台 Azure 伺服器,我也無法訪問。我可以毫無問題地連接到我的本地 SQLEXPRESS 實例。
到目前為止,我的 Google-foo 讓我失望了。我錯過了什麼?我目前的理論是 SQLEXPRESS 安裝與 SSMS 安裝發生衝突,但我不知道如何確定——這只是我讀到的曾經是一個問題的東西。
更新
18 預覽 5 對我沒有幫助。同樣的錯誤:(
其他似乎有同樣問題但沒有解決方案的人:
- https://www.reddit.com/r/SQLServer/comments/9vfos7/issue_with_ssms_cant_connect_to_specific_server/
- https://stackoverflow.com/questions/52885575/ssms-connect-to-azure-failure
更新 2
解除安裝 SQLEXPRESS 並使用 IISCrypto 將特定的 TLS 條目添加到系統資料庫中也無濟於事。
更新3(在下面的答案之後)
我安裝了 SSDT,一切又都壞了:(。但是,我確實發現我可以毫無問題地連接 SSMS 中的單個查詢,但我無法連接到對象資源管理器中的伺服器。去圖。
如果我發現其他東西,我會在這裡更新。
更新:我發現連接到 AWS 也失敗了,這導致我再次進行Google搜尋,這導致我來到這裡:https ://www.sqlservercentral.com/Forums/1891503/Unable-to-connect-to-SQL-2008-Servers -來自-SSMS-2017
按照引用站點上一篇文章的說明,我下載了 IISCrypto 並啟用了所有密碼。答對了。
https://www.nartac.com/Products/IISCrypto/Download
我會在下面留下我之前的答案,以防它給那些經歷過不眠之夜和幾個鍵盤的人帶來安慰。
舊更新 - 安裝 SSDT 15.8.2 後,以下解決方案停止為我工作:(
經過幾天:
- MS Azure SQL 支持 - 沒有幫助(他們只是讓我參考這篇文章。我做的那個。)
- 解除安裝 SQL Server Express/Developer 和三個不同版本的 SSMS - 都具有相同的結果
- 使用 Win 10 Pro 在我的電腦上創建 VM - SSMS 可以正常工作
- 擦除電腦並從零開始(使用 MSI 恢復) - 仍然是同樣的問題
- 檢查 TLS 數據包以確保版本 1.2 - 它是 1.2
- 嘗試與 SqlPackage.exe 連接 - 從來沒有為我工作過,與 SSMS 相同的錯誤
- 嘗試與 SQLCMD 連接 - 它成功了!
- 嘗試連接 SQL Native Client - 也有效!
…我終於讓它工作了。好消息是它有效。壞消息是我不知道具體原因。
我目前使用 SSMS 17.9.1 安裝了全新的 Win 10 Pro。我沒有安裝任何 SQL Server 實例。我的預設 Windows 防火牆已啟用,Norton AntiVirus 正在管理它(預設使用電腦)。在撰寫本文時,所有 Windows 更新均已應用。我還下載並安裝了 SQL Server 2012 Native Client https://www.microsoft.com/en-us/download/confirmation.aspx?id=50402
當它開始工作時,我剛剛使用 SQLCMD 並連接到 Azure SQL Server
master
數據庫並正在查詢sys.event_log
表。在此之前,我曾使用 SQLCMD 連接到同一台伺服器上的不同數據庫。當我在表中沒有看到任何內容時,sys.event_log
我回到了 SSMS,它適用於我的所有伺服器(我們有三個)。TL;DR 用 SQLCMD 連接一段時間,看看是否有幫助?
可以連接 SQLCMD 等其他工具嗎?
此外,數據庫上的目前工作負載可能會導致它達到層限制,這將導致您的數據庫出現連接問題。在 Azure 門戶中查看使用指標,看看你是否達到了任何限制。