教學課程:使用 Azure Resource Manager 範本布建 適用於 MySQL 的 Azure 資料庫 伺服器

適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 MySQL 的 Azure 資料庫 單一伺服器位於淘汰路徑上。 強烈建議您升級至 適用於 MySQL 的 Azure 資料庫 彈性伺服器。 如需移轉至 適用於 MySQL 的 Azure 資料庫 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 MySQL 的 Azure 資料庫 會發生什麼事?

適用於 MySQL 的 Azure 資料庫 REST API 可讓 DevOps 工程師在 Azure 中自動化及整合受控 MySQL 伺服器和資料庫的佈建、設定和作業。 API 允許在 適用於 MySQL 的 Azure 資料庫 服務上建立、列舉、管理和刪除 MySQL 伺服器和資料庫。

Azure Resource Manager 會利用基礎 REST API 來宣告和程式設計大規模部署所需的 Azure 資源,並配合基礎結構即程式代碼概念。 範本會將 Azure 資源名稱、SKU、網路、防火牆組態和設定參數化,讓它一次建立並多次使用。 您可以使用 Azure 入口網站Visual Studio Code 輕鬆地建立 Azure Resource Manager 範本。 它們可啟用應用程式封裝、標準化和部署自動化,其可整合到 DevOps CI/CD 管線中。 例如,如果您想要使用 適用於 MySQL 的 Azure 資料庫 後端快速部署 Web 應用程式,您可以從 GitHub 資源庫使用此快速入門範本來執行端對端部署。

在本教學課程中,您會使用 Azure Resource Manager 範本和其他公用程式來瞭解如何:

  • 使用 Azure Resource Manager 樣本建立具有 VNet 服務端點的 適用於 MySQL 的 Azure 資料庫 伺服器
  • 使用 mysql 命令行工具來 建立資料庫
  • 載入範例資料
  • 查詢資料
  • 更新資料

必要條件

如果您沒有 Azure 訂用帳戶,請在開始前建立免費 Azure 帳戶

使用 Azure Resource Manager 樣本建立具有 VNet 服務端點的 適用於 MySQL 的 Azure 資料庫 伺服器

若要取得 適用於 MySQL 的 Azure 資料庫 伺服器的 JSON 範本參考,請移至 Microsoft.DBforMySQL 伺服器範本參考。 以下是範例 JSON 範本,可用來建立使用 VNet 服務端點執行 適用於 MySQL 的 Azure 資料庫 的新伺服器。

{
  "apiVersion": "2017-12-01",
  "type": "Microsoft.DBforMySQL/servers",
  "name": "string",
  "location": "string",
  "tags": "string",
  "properties": {
    "version": "string",
    "sslEnforcement": "string",
    "administratorLogin": "string",
    "administratorLoginPassword": "string",
    "storageProfile": {
      "storageMB": "string",
      "backupRetentionDays": "string",
      "geoRedundantBackup": "string"
    }
  },
  "sku": {
    "name": "string",
    "tier": "string",
    "capacity": "string",
    "family": "string"
  },
  "resources": [
    {
      "name": "AllowSubnet",
      "type": "virtualNetworkRules",
      "apiVersion": "2017-12-01",
      "properties": {
        "virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
        "ignoreMissingVnetServiceEndpoint": true
      },
      "dependsOn": [
        "[concat('Microsoft.DBforMySQL/servers/', parameters('serverName'))]"
      ]
    }
  ]
}

在此要求中,需要自訂的值如下:

  • name - 指定 MySQL 伺服器的名稱(不含功能變數名稱)。
  • location - 為您的 MySQL 伺服器指定有效的 Azure 資料中心區域。 例如,westus2。
  • properties/version - 指定要部署的 MySQL 伺服器版本。 例如,5.6 或 5.7。
  • properties/administratorLogin - 指定伺服器的 MySQL 管理員登入。 系統管理員登入名稱不能azure_superuser、系統管理員、系統管理員、根、來賓或公用。
  • properties/administratorLoginPassword - 指定上面指定之 MySQL 系統管理員用戶的密碼。
  • properties/sslEnforcement - 指定 Enabled/Disabled 以啟用/停用 sslEnforcement。
  • storageProfile/storageMB - 指定伺服器所需的最大布建記憶體大小,以 MB 為單位。 例如,5120。
  • storageProfile/backupRetentionDays - 以天數指定所需的備份保留期間。 例如,7。
  • storageProfile/geoRedundantBackup - 根據異地DR需求指定Enabled/Disabled。
  • sku/tier - 指定基本、一般Purpose 或 MemoryOptimized 層以進行部署。
  • sku/capacity - 指定虛擬核心容量。 可能的值為 2、4、8、16、32 或 64。
  • sku/family - 指定 Gen5 以選擇伺服器部署的硬體產生。
  • sku/name - 指定TierPrefix_family_capacity。 例如,B_Gen5_1、GP_Gen5_16 MO_Gen5_32。 請參閱定價層檔,以瞭解每個區域和每一層的有效值。
  • resources/properties/virtualNetworkSubnetId - 在應放置 Azure MySQL 伺服器的 VNet 中指定子網的 Azure 識別符。
  • tags(optional) - 指定選擇性標籤是用來分類資源以進行計費等的索引鍵值組。

如果您想要建置 Azure Resource Manager 範本,以自動化組織的 適用於 MySQL 的 Azure 資料庫 部署,建議您先從 Azure 快速入門 GitHub 資源庫中的範例 Azure Resource Manager 範本開始,並建置在其中。

如果您不熟悉 Azure Resource Manager 範本,而且想要嘗試,您可以遵循下列步驟開始:

  • 從 Azure 快速入門資源庫複製或下載範例 Azure Resource Manager 範本
  • 修改azuredeploy.parameters.json,以根據您的喜好設定更新參數值,並儲存盤案。
  • 使用 Azure CLI 使用下列命令建立 Azure MySQL 伺服器

您可以在瀏覽器中使用 Azure Cloud Shell,或在自己的電腦上安裝 Azure CLI,在本教學課程中執行程式碼區塊。

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Screenshot that shows an example of Try It for Azure Cloud Shell.
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 Button to launch Azure Cloud Shell.
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 Screenshot that shows the Cloud Shell button in the Azure portal

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 Enter 鍵執行程式碼或命令。

az login
az group create -n ExampleResourceGroup  -l "West US2"
az deployment group create -g $ ExampleResourceGroup   --template-file $ {templateloc} --parameters $ {parametersloc}

取得連線資訊

若要連線到您的伺服器,您必須提供主機資訊和存取認證。

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

結果為 JSON 格式。 記下 fullyQualifiedDomainNameadministratorLogin

{
  "administratorLogin": "myadmin",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/servers/mydemoserver",
  "location": "westus2",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
 "sku": {
    "capacity": 2,
    "family": "Gen5",
    "name": "GP_Gen5_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/servers",
  "userVisibleState": "Ready",
  "version": "5.7"
}

使用 mysql 將 連線 至伺服器

使用 mysql 命令行工具來建立 適用於 MySQL 的 Azure 資料庫 伺服器的連線。 在此範例中,命令為:

mysql -h mydemoserver.database.windows.net -u myadmin@mydemoserver -p

建立空白資料庫

線上到伺服器之後,請建立空白資料庫。

mysql> CREATE DATABASE mysampledb;

在提示字元中,執行下列命令,將連線切換至這個新建立的資料庫:

mysql> USE mysampledb;

在資料庫中建立資料表

既然您已瞭解如何連線到 適用於 MySQL 的 Azure 資料庫 資料庫,請完成一些基本工作。

首先,建立數據表,並使用某些數據加以載入。 讓我們建立儲存清查信息的數據表。

CREATE TABLE inventory (
  id serial PRIMARY KEY, 
  name VARCHAR(50), 
  quantity INTEGER
);

將資料載入到資料表

既然您已經有資料表,請在其中插入一些資料。 在開啟的命令提示字元視窗中,執行下列查詢以插入一些數據列。

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

現在,您有兩個數據列的範例數據列到您稍早建立的數據表中。

查詢及更新資料表中的資料

執行下列查詢,從資料庫數據表擷取資訊。

SELECT * FROM inventory;

您也可以更新資料表中的數據。

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

當您擷取數據時,數據列會據以更新。

SELECT * FROM inventory;

清除資源

不再需要資源群組時,請刪除資源群組,以刪除資源群組中的資源。

  1. Azure 入口網站 中,搜尋並選取 [資源群組]。

  2. 在資源群組清單中,選擇資源群組的名稱。

  3. 在資源群組的 [ 概觀] 頁面中,選取 [ 刪除資源群組]。

  4. 在確認對話框中,輸入資源群組的名稱,然後選取 [ 刪除]。

下一步

在本教學課程中,您已瞭解如何:

  • 使用 Azure Resource Manager 樣本建立具有 VNet 服務端點的 適用於 MySQL 的 Azure 資料庫 伺服器
  • 使用 mysql 命令行工具來建立資料庫
  • 載入範例資料
  • 查詢資料
  • 更新資料