快速入门:使用 Azure CLI 创建 Azure Database for MySQL - 灵活服务器的实例

适用于: Azure Database for MySQL 灵活服务器

本快速入门介绍如何使用 Azure CLI 命令在 5 分钟内创建 Azure Database for MySQL 灵活服务器实例。

如果没有 Azure 订阅,可在开始前创建一个 Azure 试用帐户

先决条件

使用 az login 命令登录到你的帐户。 注意 id 属性。 id 属性指的是你的 Azure 帐户订阅 ID。

az login

使用 az account set 命令选择 Azure 帐户中的特定订阅。 记下 az login 输出中的 id 值,以用作命令中 subscription 参数的值。

如有多个订阅,请选择要在其中对资源计费的订阅。 要获取订阅列表,请使用 az account list

az account set --subscription <subscription ID>

创建 Azure Database for MySQL 灵活服务器

使用 az group create 命令创建 Azure 资源组。 然后在资源组中创建 Azure Database for MySQL 灵活服务器。 请务必提供唯一的名称。 以下示例在 chinaeast2 位置创建名为 myresourcegroup 的资源组。

az group create --name myresourcegroup --location chinaeast2

使用 az mysql flexible-server create 命令创建 Azure Database for MySQL 灵活服务器。 一个服务器可以包含多个数据库。 以下命令会使用服务默认值和 Azure CLI 本地上下文中的值创建服务器:

az mysql flexible-server create --location chinaeast2

创建的服务器具有以下属性:

  • 自动生成的服务器名称、管理员用户名、管理员密码、资源组名称(如果尚未在本地上下文中指定),并且与资源组位于同一位置。
  • 其余服务器配置的服务默认值:计算层(可突发)、计算大小/SKU (B1MS)、备份保持期(7 天)和 MySQL 版本 (5.7)
  • 默认连接方法是设置了自动生成的虚拟网络和子网的“专用访问(VNet 集成)”

注意

创建服务器后,无法更改连接方法。 例如,如果在创建服务器时选择了“专用访问(VNet 集成)”,则在部署后无法将设置更改为“公共访问(允许的 IP 地址)”。 强烈建议创建具有专用访问权限的服务器,以便使用虚拟网络集成安全访问服务器。 有关专用访问的详细信息,请参阅有关网络概念的文章。

如果要更改任何默认值,请参阅 Azure CLI 参考文档以获取可配置 Azure CLI 参数的完整列表。

下面是示例输出:

Creating Resource Group 'groupXXXXXXXXXX'...
Creating new vnet "serverXXXXXXXXXVNET" in resource group "groupXXXXXXXXXX"...
Creating new subnet "serverXXXXXXXXXSubnet" in resource group "groupXXXXXXXXXX" and delegating it to "Microsoft.DBforMySQL/flexibleServers"...
Creating MySQL Server 'serverXXXXXXXXX' in group 'groupXXXXXXXXXX'...
Your server 'serverXXXXXXXXX' is using SKU 'Standard_B1ms' (Paid Tier). For pricing details, see https://www.azure.cn/pricing/details/mysql/ for pricing details.
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget your password, reset the password by running 'az mysql flexible-server update -n serverXXXXXXXXX -g groupXXXXXXXXXX -p <new-password>'.
{
  "connectionString": "server=<server-name>.mysql.database.chinacloudapi.cn;database=flexibleserverdb;uid=secureusername;pwd=<password>",
  "databaseName": "flexibleserverdb",
  "host": "serverXXXXXXXXX.mysql.database.chinacloudapi.cn",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.DBforMySQL/flexibleServers/serverXXXXXXXXX",
  "location": "China East 2",
  "password": "<password>",
  "resourceGroup": "groupXXXXXXXXXX",
  "skuname": "Standard_B1ms",
  "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.Network/virtualNetworks/serverXXXXXXXXXVNET/subnets/serverXXXXXXXXXSubnet",
  "username": "secureusername",
  "version": "5.7"
}

如果要更改任何默认值,请参阅 Azure CLI 参考文档以获取可配置 Azure CLI 参数的完整列表。

创建数据库

如果还未创建数据库,请通过运行以下命令来创建名为 newdatabase 的数据库

az mysql flexible-server db create --database-name newdatabase --resource-group <group-name> --server-name <server-name>

注意

与 Azure Database for MySQL - 灵活服务器的连接使用端口 3306 进行通信。 如果尝试从企业网络内部进行连接,则可能不允许出站流量通过端口 3306。 除非 IT 部分打开端口 3306,否则无法连接到服务器。

获取连接信息

要连接到服务器,需要提供主机信息和访问凭据:

az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver

结果采用 JSON 格式。 记下 fullyQualifiedDomainNameadministratorLogin 的值。 下面是 JSON 输出的示例:

{
  "administratorLogin": "myadminusername",
  "administratorLoginPassword": null,
  "delegatedSubnetArguments": {
    "subnetArmResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/mydemoserverVNET/subnets/mydemoserverSubnet"
  },
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.chinacloudapi.cn",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/flexibleServers/mydemoserver",
  "location": "China East 2",
  "name": "mydemoserver",
  "publicNetworkAccess": "Disabled",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 0,
    "name": "Standard_B1ms",
    "tier": "Burstable"
  },
  "storageProfile": {
    "backupRetentionDays": 7,
    "fileStorageSkuName": "Premium_LRS",
    "storageAutogrow": "Disabled",
    "storageIops": 0,
    "storageMb": 10240
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/flexibleServers",
  "version": "5.7"
}

使用 Azure CLI 连接并测试连接

可以使用 Azure Database for MySQL - 灵活服务器在 Azure CLI 中使用 az mysql flexible-server connect 命令连接到灵活服务器。 可以使用此命令测试与数据库服务器的连接、创建快速基本数据库,并直接针对服务器运行查询,而无需安装 mysql.exe 或 MySQL Workbench。 还可以在交互模式下使用该命令一次运行多个查询。

运行以下脚本,以从开发环境测试和验证与数据库的连接:

az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>

下面是一个示例:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase

在成功的连接中,将显示如下示例所示的输出:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

如果连接失败,请尝试以下解决方案:

  • 检查客户端计算机上是否已打开端口 3306。
  • 验证服务器管理员用户名和密码是否正确。
  • 验证是否为客户端计算机配置了防火墙规则。
  • 如果将服务器配置为在虚拟网络中进行专用访问,请确保客户端计算机与服务器位于同一虚拟网络中。

要运行单个查询,请使用 --querytext 参数(-q):

az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"

下面是一个示例:

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table

要详细了解如何使用 az mysql flexible-server connect,请参阅 Azure CLI 连接和查询

使用 MySQL 命令行客户端进行连接

如果通过虚拟网络集成使用专用访问创建了 Azure Database for MySQL 灵活服务器,则需要从与服务器位于同一虚拟网络中的资源连接到服务器。 可以创建虚拟机,并将其添加到创建 Azure Database for MySQL - 灵活服务器实例时所创建的虚拟网络。 要了解详细信息,请参阅配置专用访问

如果使用公共访问(允许的 IP 地址)创建了 Azure Database for MySQL - 灵活服务器实例,则可以将本地 IP 地址添加到服务器上的防火墙规则列表。 有关详细指导,请参阅创建或管理防火墙规则

要从本地环境连接到服务器,可以使用 mysql.exeMySQL Workbench。 Azure Database for MySQL - 灵活服务器支持使用和传输层安全性 (TLS)(以前称为安全套接字层 [SSL])将客户端应用程序连接到 Azure Database for MySQL - 灵活服务器服务。 TLS 是一种行业标准协议,可确保在数据库服务器与客户端应用程序之间实现加密网络连接,以便遵循合规性要求。 要使用 Azure Database for MySQL 灵活服务器进行连接,请下载公共 SSL 证书以对证书颁发机构进行验证。 要详细了解如何使用加密连接进行连接或禁用 SSL,请参阅使用加密连接来连接 Azure Database for MySQL - 灵活服务器

以下示例演示了如何通过使用 mysql 命令行客户端工具连接到 Azure Database for MySQL 灵活服务器。 如果尚未安装,则可以安装该工具。 下载 SSL 连接所需的 DigiCertGlobalRootCA 证书。 使用 --ssl-mode=REQUIRED 连接字符串设置强制实施 TLS/SSL 证书验证。 将本地证书文件路径传递给 --ssl-ca 参数。 将值替换为实际的服务器名称和密码。

sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.chinacloudapi.cn -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootCA.crt.pem

清理资源

如果在其他快速入门或教程中无需使用为本文创建的资源,则可以通过运行以下命令将其删除:

az group delete --name myresourcegroup

如果只想删除所创建的灵活服务器,请运行以下命令:

az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver