你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure CLI 创建和管理用于 Azure Database for MySQL - 灵活服务器的专用链接
适用于: Azure Database for MySQL - 灵活服务器
本文介绍如何使用 Azure CLI 创建专用终结点,以便从 VNet 中的 VM 访问 Azure Database for MySQL 灵活服务器。
启动 Azure Cloud Shell
Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的步骤。 它预安装有标准 Azure 工具且配置为与帐户一起使用。
若要打开 Cloud Shell,请从代码块的右上角选择“试一试”。 也可以在单独的浏览器标签页中通过转到 https://shell.azure.com/bash 打开 Cloud Shell。 选择“复制”以复制代码块,将其粘贴到 Cloud Shell 中,然后选择 Enter 来运行它。
如果希望在本地安装并使用 CLI,则本快速入门需要 Azure CLI 2.0 版或更高版本。 运行 az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
先决条件
必须使用 az login 命令登录帐户。 请注意 id 属性,该属性指的是 Azure 帐户的订阅 ID。
az login
使用 az account set 命令选择帐户下的特定订阅。 在该命令中,记下 az login 输出中的 id 值以用作 subscription 参数的值。 如果有多个订阅,请选择应计费的资源所在的相应订阅。 若要获取所有订阅,请使用 az account list。
az account set --subscription <subscription id>
创建资源组
在创建任何资源之前,必须创建一个资源组以托管虚拟网络。 使用 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。 出现提示时,请提供要用作 VM 登录凭据的密码。 此示例创建名为 myVm 的 VM:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Win2019Datacenter
注意
记录 VM 的公共 IP 地址,因为下一步中从 Internet 进行连接需要用到它。
在资源组中创建启用公共访问的 Azure Database for MySQL 灵活服务器实例
创建启用公共访问的 Azure Database for MySQL 灵活服务器实例,并添加要对其具有访问权限的客户端 IP 地址。
az mysql flexible-server create \
--name mydemoserver \
--resource-group myResourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--public-access <my_client_ip>
注意
在某些情况下,Azure Database for MySQL 灵活服务器实例和 VNet 子网位于不同的订阅中。 在这些情况下,必须确保以下配置:
- 确保两个订阅都注册了 Microsoft.DBforMySQL/flexibleServer 资源提供程序。 有关详细信息,请参阅资源管理器注册。
创建专用终结点
在虚拟网络中为 Azure Database for 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/flexibleServers" --query "id" -o tsv) \
--group-id mysqlServer \
--connection-name myConnection \
--location location
配置专用 DNS 区域
为 Azure Database for 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 MySQL flexible server 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 区域,如此处所示。
从 Internet 连接到 VM
从 Internet 连接到 VM myVm,如下所示:
在门户的搜索栏中,输入 myVm。
选择“连接”按钮。 选择“连接”按钮后,“连接到虚拟机”随即打开。
选择“下载 RDP 文件”。 Azure 会创建远程桌面协议 ( .rdp) 文件,并将其下载到计算机。
打开 downloaded.rdp 文件。
- 出现提示时,选择“连接”。
。 输入在创建 VM 时指定的用户名和密码。 > [!注意] > 你可能需要选择“更多选择”>“使用其他帐户”,以指定你在创建 VM 时输入的凭据。
选择“确定”。
你可能会在登录过程中收到证书警告。 如果收到证书警告,请选择“确定”或“继续”。
VM 桌面出现后,将其最小化以返回到本地桌面。
从 VM 私下访问 Azure Database for 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
使用任何可用的客户端测试 Azure Database for MySQL 灵活服务器实例的专用链接连接。 以下示例使用 MySQL Workbench 来执行该操作。
在“新建连接”中,输入或选择以下信息:
设置 值 连接名称 选择所选的连接名称。 主机名 选择 mydemoserver.privatelink.mysql.database.azure.com 用户名 输入在创建 Azure Database for MySQL 灵活服务器实例期间提供的 username@servername 形式的用户名。 密码 输入在创建 Azure Database for MySQL 灵活服务器实例期间提供的密码。 选择“连接” 。
浏览左侧菜单中的数据库。
(可选)从 Azure Database for MySQL 灵活服务器数据库创建或查询信息。
关闭与 myVm 的远程桌面连接。
清理资源
如果不再需要资源组及其所有资源,可以使用 az group delete
将其删除:
az group delete --name myResourceGroup --yes
其他专用链接 CLI 命令
列出专用可链接子资源 (groupId)
az network private-link-resource list --id {PrivateLinkResourceID} // or -g MyResourceGroup -n MySA --type Microsoft.Storage/storageAccounts
列出给定资源上的专用终结点连接
az network private-endpoint-connection list --id {PrivateLinkResourceID}
批准给定资源上的专用终结点连接
az network private-endpoint-connection approve --id {PrivateEndpointConnectionID} --description "Approved!"
拒绝给定资源上的专用终结点连接
az network private-endpoint-connection reject --id {PrivateEndpointConnectionID} --description "Rejected!"
删除给定资源上的专用终结点连接
az network private-endpoint-connection delete --id {PrivateEndpointConnectionID}
后续步骤
- 了解如何从 Azure 门户为 Azure Database for MySQL 灵活服务器配置专用链接。
- 了解如何管理与 Azure Database for MySQL 灵活服务器的连接。
- 了解如何使用客户托管密钥将另一层加密添加到 Azure Database for MySQL 灵活服务器。
- 了解如何在 Azure Database for MySQL 灵活服务器实例上配置和使用 Microsoft Entra 身份验证。