使用自定义或默认配置创建 MySQL 灵活服务器。 有关网络配置的详细信息,请参阅

  • 配置公共访问 https://docs.microsoft.com/en-us/azure/mysql/flexible-server/how-to-manage-firewall-cli
  • 配置专用访问 https://docs.microsoft.com/en-us/azure/mysql/flexible-server/how-to-manage-virtual-network-cli
  • [--database-name] [--geo-redundant-backup {Disabled, Enabled}] [--high-availability {Disabled, SameZone, ZoneRedundant}] [--identity] [--iops] [--key] [--location] [--name] [--private-dns-zone] [--public-access] [--resource-group] [--sku-name] [--standby-zone] [--storage-auto-grow {Disabled, Enabled}] [--storage-size] [--subnet] [--subnet-prefixes] [--tags] [--tier] [--version] [--vnet] [--yes] [--zone]

    使用自定义参数创建 MySQL 灵活服务器

    az mysql flexible-server create --location northeurope --resource-group testGroup \
      --name testserver --admin-user username --admin-password password \
      --sku-name Standard_B1ms --tier Burstable --public-access 0.0.0.0 --storage-size 32 \
      --tags "key=value" --version 5.7 --high-availability ZoneRedundant --zone 1 \
      --standby-zone 3 --storage-auto-grow Enabled --iops 500

    创建默认参数和启用公共访问的 MySQL 灵活服务器。 资源组、服务器名称、用户名、密码和默认数据库将由 CLI 创建

    az mysql flexible-server create

    创建具有公共访问权限的 MySQL 灵活服务器,并添加 IP 地址范围以访问此服务器。 --public-access 参数可以是“All”、“None”或 <startIpAddress><startIpAddress>-<endIpAddress>

    az mysql flexible-server create --resource-group testGroup --name testserver --public-access 125.23.54.31-125.23.54.35

    创建具有专用访问权限的 MySQL 灵活服务器。 如果提供的虚拟网络和子网不存在,则会创建具有指定地址前缀的虚拟网络和子网。

    az mysql flexible-server create --resource-group testGroup --name testserver --vnet myVnet --subnet mySubnet --address-prefixes 10.0.0.0/16 --subnet-prefixes 10.0.0.0/24

    使用新的子网资源 ID 和新的专用 DNS 区域资源 ID 创建 MySQL 灵活服务器。 可以在不同的订阅或资源组中创建子网和 DNS 区域。

    az mysql flexible-server create \
      --resource-group testGroup --name testserver \
      --subnet /subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Network/virtualNetworks/{VNetName}/subnets/{SubnetName} \
      --private-dns-zone /subscriptions/{SubID}/resourceGroups/{resourceGroup}/providers/Microsoft.Network/privateDnsZones/testMySQLFlexibleDnsZone.private.mysql.database.azure.com \
      --address-prefixes 172.0.0.0/16 --subnet-prefixes 172.0.0.0/24

    使用同一资源组中的现有网络资源创建 MySQL 灵活服务器。 提供的子网不应部署任何其他资源,并且此子网将委派给 Microsoft.DBforMySQL/flexibleServers(如果尚未委派)。 如果尚未链接,专用 DNS 区域将链接到虚拟网络。

    # create vnet
    az network vnet create --resource-group testGroup --name testVnet --location testLocation --address-prefixes 172.0.0.0/16
    # create subnet
    az network vnet subnet create --resource-group testGroup --vnet-name testVnet --address-prefixes 172.0.0.0/24 --name testSubnet
    # create private dns zone
    az network private-dns zone create -g testGroup -n testDNS.private.mysql.database.azure.com
    az mysql flexible-server create --resource-group testGroup \
      --name testserver --location testLocation \
      --subnet /subscriptions/{SubId}/resourceGroups/{testGroup}/providers/Microsoft.Network/virtualNetworks/tesetVnet/subnets/testSubnet \
      --private-dns-zone /subscriptions/{SubId}/resourceGroups/{testGroup}/providers/Microsoft.Network/privateDnsZones/testDNS.mysql.database.azure.com\
    az mysql flexible-server create --resource-group testGroup --name testserver \
      --vnet testVnet --subnet testSubnet --location testLocation \
      --private-dns-zone /subscriptions/{SubId}/resourceGroups/{testGroup}/providers/Microsoft.Network/privateDnsZones/testDNS.mysql.database.azure.com

    使用不同的资源组/订阅中的现有网络资源创建 MySQL 灵活服务器。

    az mysql flexible-server create --resource-group testGroup \
       --name testserver --location testLocation \
      --subnet /subscriptions/{SubId2}/resourceGroups/{testGroup2}/providers/Microsoft.Network/virtualNetworks/tesetVnet/subnets/testSubnet \
      --private-dns-zone /subscriptions/{SubId2}/resourceGroups/{testGroup2}/providers/Microsoft.Network/privateDnsZones/testDNS.mysql.database.azure.com

    使用数据加密创建 MySQL 灵活服务器。

    # create keyvault
    az keyvault create -g testGroup -n testVault --location testLocation \
      --enable-purge-protection true
    # create key in keyvault and save its key identifier
    keyIdentifier=$(az keyvault key create --name testKey -p software \
      --vault-name testVault --query key.kid -o tsv)
    # create identity and save its principalId
    identityPrincipalId=$(az identity create -g testGroup --name testIdentity \
      --location testLocation --query principalId -o tsv)
    # add testIdentity as an access policy with key permissions 'Wrap Key', 'Unwrap Key', 'Get' and 'List' inside testVault
    az keyvault set-policy -g testGroup -n testVault --object-id $identityPrincipalId \
      --key-permissions wrapKey unwrapKey get list
    # create flexible server with data encryption enabled
    az mysql flexible-server create -g testGroup -n testServer --location testLocation \
      --key $keyIdentifier --identity testIdentity

    创建具有异地冗余备份和数据加密的 MySQL 灵活服务器。

    # create keyvault
    az keyvault create -g testGroup -n testVault --location testLocation \
      --enable-purge-protection true
    # create key in keyvault and save its key identifier
    keyIdentifier=$(az keyvault key create --name testKey -p software \
      --vault-name testVault --query key.kid -o tsv)
    # create identity and save its principalId
    identityPrincipalId=$(az identity create -g testGroup --name testIdentity \
      --location testLocation --query principalId -o tsv)
    # add testIdentity as an access policy with key permissions 'Wrap Key', 'Unwrap Key', 'Get' and 'List' inside testVault
    az keyvault set-policy -g testGroup -n testVault --object-id $identityPrincipalId \
      --key-permissions wrapKey unwrapKey get list
    # create backup keyvault
    az keyvault create -g testGroup -n testBackupVault --location testBackupLocation \
      --enable-purge-protection true
    # create backup key in backup keyvault and save its key identifier
    backupKeyIdentifier=$(az keyvault key create --name testBackupKey -p software \
      --vault-name testBackupVault --query key.kid -o tsv)
    # create backup identity and save its principalId
    backupIdentityPrincipalId=$(az identity create -g testGroup --name testBackupIdentity \
      --location testBackupLocation --query principalId -o tsv)
    # add testBackupIdentity as an access policy with key permissions 'Wrap Key', 'Unwrap Key', 'Get' and 'List' inside testBackupVault
    az keyvault set-policy -g testGroup -n testBackupVault \
      --object-id $backupIdentityPrincipalId --key-permissions wrapKey unwrapKey get list
    # create flexible server with geo redundant backup and data encryption enabled
    az mysql flexible-server create -g testGroup -n testServer --location testLocation \
      --geo-redundant-backup Enabled \
      --key $keyIdentifier --identity testIdentity \
      --backup-key $backupKeyIdentifier --backup-identity testBackupIdentity
    --address-prefixes

    删除灵活服务器。

    az mysql flexible-server delete --resource-group testGroup --name testserver

    在不出现确认提示的情况下删除灵活服务器。

    az mysql flexible-server delete --resource-group testGroup --name testserver --yes
    --ids
    az mysql flexible-server detach-vnet --public-network-access {Disabled, Enabled}
                                         [--ids]
                                         [--name]
                                         [--resource-group]
                                         [--subscription]
                                         [--yes]

    为禁用公共访问的灵活服务器分离 vnet。

    az mysql flexible-server detach-vnet --resource-group testGroup --name testserver --public-network-access Disabled
    --public-network-access

    将“testerver”异地还原到具有相同网络配置的“newLocation”位置的新服务器“testserverNew”。 专用访问服务器将使用不同的专用 DNS 区域。

    az mysql flexible-server geo-restore --resource-group testGroup --name testserverNew --source-server testserver --location newLocation

    将公共访问或专用访问服务器“testerver”异地还原为具有新子网的新服务器“testserverNew”。 将为还原的服务器预配新的 vnet、子网和专用 DNS 区域。 有关更多专用访问方案,请参阅“灵活服务器创建”命令。

    az mysql flexible-server geo-restore --resource-group testGroup --name testserverNew \
      --source-server testserver --vnet newVnet --subnet newSubnet \
      --address-prefixes 172.0.0.0/16 --subnet-prefixes 172.0.0.0/24 \
      --private-dns-zone testDNS.mysql.database.azure.com --location newLocation

    将专用访问服务器“testerver”异地还原为具有公共访问权限的新服务器“testserverNew”。

    az mysql flexible-server geo-restore --resource-group testGroup --name testserverNew  --source-server testserver --public-access Enabled --location newLocation
    --location -l
    az mysql flexible-server list

    列出资源组中的所有 MySQL 灵活服务器。

    az mysql flexible-server list --resource-group testGroup

    以表格式列出资源组中的所有 MySQL 灵活服务器。

    az mysql flexible-server list --resource-group testGroup --output table
    --resource-group -g
    az mysql flexible-server list-skus -l eastus

    列出表输出中给定区域中的可用 SKU

    az mysql flexible-server list-skus -l eastus -o table
    --location -l

    重启灵活服务器。

    az mysql flexible-server restart --resource-group testGroup --name testserver

    使用故障转移重启灵活服务器

    az mysql flexible-server restart --resource-group testGroup --name testserver --failover Forced
    --failover

    将“testerver”还原到具有相同网络配置的新服务器“testserverNew”的特定时间点。

    az mysql flexible-server restore --resource-group testGroup --name testserverNew --source-server testserver --restore-time "2017-06-15T13:10:00Z"

    将公共访问或专用访问服务器“testserver”还原为具有新子网的新服务器“testserverNew”到当前时间点。 将为还原的服务器预配新的 vnet、子网和专用 DNS 区域。 有关更多专用访问方案,请参阅“灵活服务器创建”命令。

    az mysql flexible-server restore --resource-group testGroup --name testserverNew \
      --source-server testserver --vnet newVnet --subnet newSubnet \
      --address-prefixes 172.0.0.0/16 --subnet-prefixes 172.0.0.0/24 \
      --private-dns-zone testDNS.mysql.database.azure.com

    将专用访问服务器“testerver”还原到当前时间点,作为具有公共访问权限的新服务器“testserverNew”。

    az mysql flexible-server restore --resource-group testGroup --name testserverNew \
      --source-server testserver --public-access Enabled
    --source-server
    az mysql flexible-server show-connection-string [--admin-password]
                                                    [--admin-user]
                                                    [--database-name]
                                                    [--ids]
                                                    [--server-name]
                                                    [--subscription]

    显示 cmd 和编程语言的连接字符串。

    az mysql flexible-server show-connection-string -s testserver -u username -p password -d databasename
    --admin-password -p
    az mysql flexible-server update [--add]
                                    [--admin-password]
                                    [--auto-scale-iops {Disabled, Enabled}]
                                    [--backup-identity]
                                    [--backup-key]
                                    [--backup-retention]
                                    [--disable-data-encryption {false, true}]
                                    [--force-string]
                                    [--geo-redundant-backup {Disabled, Enabled}]
                                    [--high-availability {Disabled, SameZone, ZoneRedundant}]
                                    [--identity]
                                    [--ids]
                                    [--iops]
                                    [--key]
                                    [--maintenance-window]
                                    [--name]
                                    [--public-access {Disabled, Enabled}]
                                    [--remove]
                                    [--replication-role]
                                    [--resource-group]
                                    [--set]
                                    [--sku-name]
                                    [--standby-zone]
                                    [--storage-auto-grow {Disabled, Enabled}]
                                    [--storage-size]
                                    [--subscription]
                                    [--tags]
                                    [--tier]

    使用服务器和资源组的本地上下文更新灵活服务器的 SKU。

    az mysql flexible-server update --sku-name Standard_D4ds_v4 --tier GeneralPurpose

    更新灵活服务器的标记。

    az mysql flexible-server update --resource-group testGroup --name testserver --tags "k1=v1" "k2=v2"

    设置或更改数据加密的密钥和标识。

    # get key identifier of the existing key
    newKeyIdentifier=$(az keyvault key show --vault-name testVault --name testKey \
      --query key.kid -o tsv)
    # update server with new key/identity
    az mysql flexible-server update --resource-group testGroup --name testserver \
      --key $newKeyIdentifier --identity newIdentity

    使用异地冗余备份设置或更改用于数据加密的密钥、标识、备份密钥和备份标识。

    # get key identifier of the existing key and backup key
    newKeyIdentifier=$(az keyvault key show --vault-name testVault --name testKey \
      --query key.kid -o tsv)
    newBackupKeyIdentifier=$(az keyvault key show --vault-name testBackupVault \
      --name testBackupKey --query key.kid -o tsv)
    # update server with new key/identity and backup key/identity
    az mysql flexible-server update --resource-group testGroup --name testserver \
      --key $newKeyIdentifier --identity newIdentity \
      --backup-key $newBackupKeyIdentifier --backup-identity newBackupIdentity

    禁用灵活服务器的数据加密。

    az mysql flexible-server update --resource-group testGroup --name testserver \
      --disable-data-encryption
    --add

    将服务器“testsvr”升级到 MySQL 主版本 8。

    # make sure that sql_mode only contains values allowed in new version, for example:
    az mysql flexible-server parameter set -g testgroup -s testsvr -n sql_mode \
      -v "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    # upgrade server to MySQL major version 8.
    az mysql flexible-server upgrade -g testgroup -n testsvr -v 8
    --version -v

    等待灵活服务器满足某些条件。

    az mysql flexible-server wait --exists --resource-group testGroup --name testserver
    --created