教學課程:使用 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 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 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 格式。 記下 fullyQualifiedDomainName 和 administratorLogin。
{
"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;
清除資源
不再需要資源群組時,請刪除資源群組,以刪除資源群組中的資源。
在 Azure 入口網站 中,搜尋並選取 [資源群組]。
在資源群組清單中,選擇資源群組的名稱。
在資源群組的 [ 概觀] 頁面中,選取 [ 刪除資源群組]。
在確認對話框中,輸入資源群組的名稱,然後選取 [ 刪除]。
下一步
在本教學課程中,您已瞭解如何:
- 使用 Azure Resource Manager 樣本建立具有 VNet 服務端點的 適用於 MySQL 的 Azure 資料庫 伺服器
- 使用 mysql 命令行工具來建立資料庫
- 載入範例資料
- 查詢資料
- 更新資料