使用 CLI 針對適用於 MySQL 的 Azure 資料庫建立與管理私人連結
適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫 - 單一伺服器會發生什麼事?
私人端點是 Azure 中私人連結的基本要素。 其可讓 Azure 資源 (例如虛擬機器 (VM)) 與私人連結資源進行私密通訊。 在本文中,您將了解如何使用 Azure CLI 在 Azure 虛擬網路和具有 Azure 私人端點的適用於 MySQL 的 Azure 資料庫伺服器中建立虛擬機器。
注意
私人連結功能僅適用於一般用途或記憶體最佳化定價層的適用於 MySQL 的 Azure 資料庫伺服器。 請確定資料庫伺服器位於下列其中一個定價層。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0.28 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立資源群組
建立任何資源之前,您必須先建立資源群組來裝載虛擬網路。 使用 az group create 來建立資源群組。 下列範例會在 westeurope 位置建立名為 myResourceGroup 的資源群組:
az group create --name myResourceGroup --location westeurope
建立虛擬網路
使用 az network vnet create 建立虛擬網路。 此範例會建立一個名為 myVirtualNetwork 的預設虛擬網路,其中含有一個名為 mySubnet 的子網路:
az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet
停用子網路的私人端點原則
Azure 會將資源部署到虛擬網路內的子網路,因此您必須建立或更新子網路,以停用私人端點網路原則。 使用 az network vnet subnet update 來更新名為 mySubnet 的子網路設定:
az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true
建立 VM
使用 az vm create 建立虛擬機器。 出現提示時,請提供密碼以作為 VM 的登入認證。 此範例會建立名為 myVm 的 VM:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Win2019Datacenter
注意
VM 的公用 IP 位址。 在下一個步驟中,您將使用此位址來從網際網路連線至 VM。
建立適用於 MySQL 的 Azure 資料庫伺服器
使用 az mysql server create 命令來建立適用於 MySQL 的 Azure 資料庫。 請記住,您的 MySQL 伺服器名稱在整個 Azure 中必須是唯一的,因此請以您自己的唯一值取代括弧中的預留位置值:
# Create a server in the resource group
az mysql server create \
--name mydemoserver \
--resource-group myResourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2
注意
在某些案例中,適用於 MySQL 的 Azure 資料庫和 VNet 子網路是位於不同的訂用帳戶。 在這些情況下,您必須確保下列設定:
- 請確定這兩個訂用帳戶都已註冊 Microsoft.DBforMySQL 資源提供者。 如需詳細資訊,請參閱 resource-manager-registration
建立私人端點
在您的虛擬網路中建立 MySQL 伺服器的私人端點:
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--subnet mySubnet \
--private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforMySQL/servers" --query "id" -o tsv) \
--group-id mysqlServer \
--connection-name myConnection
設定私人 DNS 區域
建立適用於 MySQL 伺服器網域的私人 DNS 區域,然後建立與虛擬網路關聯的連結。
az network private-dns zone create --resource-group myResourceGroup \
--name "privatelink.mysql.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
--zone-name "privatelink.mysql.database.azure.com"\
--name MyDNSLink \
--virtual-network myVirtualNetwork \
--registration-enabled false
# Query for the network interface ID
$networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)
az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for MySQL name
# Create DNS records
az network private-dns record-set a create --name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup -a <Private IP Address>
注意
客戶 DNS 設定中的 FQDN 無法解析為已設定的私人 IP。 對於已設定的 FQDN,您必須設定 DNS 區域,如此處所示。
從網際網路連線至 VM
從網際網路連線至 VM:myVm,如下所示:
在入口網站的搜尋列中,輸入 myVm。
選取 [連線] 按鈕。 選取 [連線] 按鈕之後,隨即會開啟 [連線至虛擬機器]。
選取 [下載 RDP 檔案]。 Azure 會建立一個「遠端桌面通訊協定」(.rdp) 檔案,並下載至您的電腦。
開啟 downloaded.rdp 檔案。
如果出現提示,請選取 [連接]。
輸入在建立 VM 時所指定的使用者名稱與密碼。
注意
您可能需要選取 [其他選擇]>[使用不同的帳戶],以指定您在建立 VM 時輸入的認證。
選取 [確定]。
您可能會在登入程序期間收到憑證警告。 如果您收到憑證警告,請選取 [是] 或 [繼續]。
當 VM 桌面出現之後,將它最小化以回到您的本機桌面。
從 VM 私人存取 MySQL 伺服器
在 myVm 的遠端桌面中,開啟 PowerShell。
輸入
nslookup mydemomysqlserver.privatelink.mysql.database.azure.com
。您將收到如下訊息:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mydemomysqlserver.privatelink.mysql.database.azure.com Address: 10.1.3.4
使用任何可用的用戶端測試 MySQL 伺服器的私人連結連線。 在下列範例中,我已使用 MySQL Workbench 執行此作業。
在 [新增連線] 中,輸入或選取這項資訊:
設定 值 連線名稱 選取您所選擇的連線名稱。 主機名稱 選取 mydemoserver.privatelink.mysql.database.azure.com 使用者名稱 在 MySQL 伺服器建立期間所提供的使用者名稱以 username@servername 形式輸入。 密碼 輸入在建立 MySQL 伺服器期間提供的密碼。 選取 Connect。
瀏覽左側功能表中的資料庫。
(可選擇) 從 MySQL 資料庫建立或查詢資訊。
關閉對 myVm 的遠端桌面連線。
清除資源
您可以使用 az group delete 來移除不再需要的資源群組,以及其所具有的所有資源:
az group delete --name myResourceGroup --yes
下一步
- 深入了解什麼是 Azure 私人端點