Sql-Server

連接到 Azure VM 上的本地數據庫

  • July 6, 2021

使用 DBforge 嘗試連接到 Azure Ubuntu 18 VM 上的本地 MSSQL 數據庫,我收到此錯誤:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify
that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open
a connection to SQL Server)

我有:

  1. 在入站規則上啟用 SSH。
  2. 我可以使用 PuTTY SSH 進入 Azure VM
  3. 我已嘗試使用主機名 ( xx.eastus.cloudapp.azure.com) 和公共 IP 地址 ( 13.82.xx.xx) 來嘗試連接,但均出現此錯誤。
  4. 我可以使用主機名連接到在 VM 上執行的網站,然後轉到公共 IP 地址會顯示 Apache 登錄頁面。
  5. 該網站正在執行 100%,我可以登錄,因此數據庫實例正在執行。
  6. 我遵循了這裡的建議,並確認我的伺服器正在偵聽埠 1433。(日誌條目Server is listening on [ 'any' <ipv4> 1433].:)
  7. 埠 1433 未被防火牆阻止。出於測試目的,我已禁用 Azure 防火牆。
  8. 其他各種答案建議我必須進入 services.msc 等,但這是一個 Linux VM,所以這些也不起作用。

我在使用 SSMS 時遇到了同樣的錯誤,這裡的答案似乎都不適用於我的具體情況。他們都談到連接到 Azure SQL 數據庫,但事實並非如此。

知道我還能嘗試什麼嗎?

原來我忽略了在 Azure 門戶中設置子網。我現在已連接。

如果您在 SQL 錯誤日誌中看到此消息 ( Server is listening on [ 'any' 1433]),則表示已設置 SQL Server 級別配置,即啟用 TCP/IP 協議,重新啟動服務..

因此,現在您必須關注網路級別,確保埠號1433不會被網路設備(例如 VLAN 和防火牆規則)阻止,而您可以進行 SSH 並連接到由同一 VM 託管的網站,這意味著特定埠(SSH:22 , 網站:80 或自定義埠)沒有被阻止,同樣您必須打開埠1433才能連接 SQL Server 實例。

引用自:https://dba.stackexchange.com/questions/249352