教學課程:使用 Azure CLI 設計適用於 MySQL 的 Azure 資料庫

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

重要

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

適用於 MySQL 的 Azure 資料庫是以 MySQL Community Edition 資料庫引擎為基礎的 Microsoft 雲端中關係資料庫服務。 在本教學課程中,您會使用 Azure CLI (命令列介面) 和其他公用程式來瞭解如何:

  • 建立適用於 MySQL 的 Azure 資料庫
  • 設定伺服器防火牆
  • 使用 mysql 命令列工具來 建立資料庫
  • 載入範例資料
  • 查詢資料
  • 更新資料
  • 還原資料

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

必要條件

  • 本文需要 Azure CLI 2.0 版或更新版本。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。

如果您有多個訂用帳戶,請選擇資源存在或計費的適當訂用帳戶。 使用 az account set 命令,在您的帳戶下選取特定的訂用 帳戶識別碼。

az account set --subscription 00000000-0000-0000-0000-000000000000

建立資源群組

使用 az group create 命令建立 Azure 資源群組 。 資源群組是將 Azure 資源部署及管理為群組的邏輯容器。

下列範例會在 westus 位置建立名為 myresourcegroup 的資源群組。

az group create --name myresourcegroup --location westus

建立適用於 MySQL 的 Azure 資料庫伺服器

使用 az mysql server create 命令建立適用於 MySQL 的 Azure 資料庫伺服器。 伺服器可以管理多個資料庫。 一般而言,每個專案或每個使用者都會使用個別的資料庫。

下列範例會建立位於資源組 myresourcegroupmydemoserver 名 的 westus 適用於 MySQL 的 Azure 資料庫伺服器。 伺服器具有名為 的 myadmin 系統管理員使用者。 它是具有 2 個虛擬核心的一般用途 Gen 5 伺服器。 <server_admin_password>以您自己的值取代 。

az mysql server create --resource-group myresourcegroup --name mydemoserver --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2 --version 5.7

sku-name 參數值遵循慣例 {pricing tier}_{compute generation}_{vCores},如下列範例所示:

  • --sku-name B_Gen5_2 對應至基本、Gen 5 和 2 個虛擬核心。
  • --sku-name GP_Gen5_32 對應於一般用途、第 5 代和 32 個 vCore。
  • --sku-name MO_Gen5_2 對應到記憶體最佳化、第 5 代和 2 個 vCore。

請參閱 定價層 檔,以瞭解每個區域和每一層的有效值。

重要

您在此處指定的伺服器管理員登入和密碼,需要在此快速入門稍後登入伺服器及其資料庫。 請記得或記錄這項資訊以供稍後使用。

設定防火牆規則

使用 az mysql server firewall-rule create 命令建立適用於 MySQL 的 Azure 資料庫伺服器層級防火牆規則。 伺服器層級防火牆規則可讓外部應用程式,例如 mysql 命令列工具或 MySQL Workbench,透過 Azure MySQL 服務防火牆連線到您的伺服器。

下列範例會建立稱為 AllowMyIP 的防火牆規則,允許來自特定 IP 位址 192.168.0.1 的連線。 在對應至您要連線位置的 IP 位址或 IP 位址範圍中取代 。

az mysql server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowMyIP --start-ip-address 192.168.0.1 --end-ip-address 192.168.0.1

取得連線資訊

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

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": "westus",
  "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.mysql.database.azure.com -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;

將資料庫還原至先前的時間點

假設您不小心刪除了此資料表。 這是您無法輕易從中復原的內容。 適用於 MySQL 的 Azure 資料庫可讓您回到過去 35 天內的任何時間點,並將此時間點還原至新的伺服器。 您可以使用這個新伺服器來復原已刪除的資料。 下列步驟會將範例伺服器還原至加入資料表之前的時間點。

針對還原,您需要下列資訊:

  • 還原點:選取伺服器變更前發生的時間點。 必須大於或等於源資料庫的最舊備份值。
  • 目標伺服器:提供您想要還原的新伺服器名稱
  • 來源伺服器:提供您要從中還原的伺服器名稱
  • 位置:您無法選取區域,預設與來源伺服器相同
az mysql server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time "2017-05-4 03:10" --source-server-name mydemoserver

此命令 az mysql server restore 需要下列參數:

設定 建議的值 描述
資源群組  myresourcegroup  來源伺服器所在的資源群組。 
NAME mydemoserver-restored 還原命令所建立的新伺服器名稱。
restore-point-in-time 2017-04-13T13:59:00Z 選取要還原到的時間點。 此日期和時間必須位於來源伺服器的備份保留期間內。 使用ISO8601日期和時間格式。 例如,您可以使用自己的當地時區,例如 2017-04-13T05:59:00-08:00 ,或使用 UTC Zulu 格式 2017-04-13T13:59:00Z
source-server mydemoserver 要從中還原的來源伺服器名稱或識別碼。

將伺服器還原到時間點會建立新的伺服器,從您指定的時間點開始複製為原始伺服器。 所還原伺服器的位置和定價層值與來源伺服器相同。

此命令是同步的,而且會在還原伺服器之後傳回。 還原完成後,找出已建立的新伺服器。 確認資料已如預期還原。

清除資源

如果您不需要這些資源進行另一個快速入門/教學課程,您可以執行下列命令來刪除它們:

az group delete --name myresourcegroup

如果您想要刪除新建立的伺服器,您可以執行 az mysql server delete 命令。

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

下一步

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

  • 建立適用於 MySQL 的 Azure 資料庫伺服器
  • 設定伺服器防火牆
  • 使用 mysql 命令列工具來建立資料庫
  • 載入範例資料
  • 查詢資料
  • 更新資料
  • 還原資料