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

重要

適用於 MariaDB 的 Azure 資料庫 位於淘汰路徑上。 強烈建議您移轉至 適用於 MySQL 的 Azure 資料庫。 如需移轉至 適用於 MySQL 的 Azure 資料庫 的詳細資訊,請參閱 適用於 MariaDB 的 Azure 資料庫 發生什麼事?

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

  • 建立 適用於 MariaDB 的 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

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

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

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

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

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

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

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

重要

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

設定防火牆規則

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

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

az mariadb 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 mariadb server show --resource-group myresourcegroup --name mydemoserver

結果為 JSON 格式。 記下 fullyQualifiedDomainNameadministratorLogin

{
  "administratorLogin": "myadmin",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "mydemoserver.mariadb.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMariaDB/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.DBforMariaDB/servers",
  "userVisibleState": "Ready",
  "version": "10.2"
}

使用 mysql 將 連線 至伺服器

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

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

建立空白資料庫

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

mysql> CREATE DATABASE mysampledb;

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

mysql> USE mysampledb;

在資料庫中建立資料表

既然您已瞭解如何連線到 適用於 MariaDB 的 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;

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

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

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

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

此指令 az mariadb 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 要從中還原的來源伺服器名稱或標識碼。

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

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

下一步

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

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