教學課程:使用 Azure CLI 設計適用於 MySQL 的 Azure 資料庫
適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?
「適用於 MySQL 的 Azure 資料庫」是 Microsoft 雲端中以 MySQL Community Edition 資料庫引擎為基礎的關聯式資料庫服務。 在本教學課程中,您將使用 Azure CLI (命令列介面) 及其他公用程式來學習如何:
- 建立適用於 MySQL 的 Azure 資料庫
- 設定伺服器防火牆
- 使用 mysql 命令列工具建立資料庫
- 載入範例資料
- 查詢資料
- 更新資料
- 還原資料
如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
如果您有多個訂用帳戶,請選擇資源所在或作為計費對象的適當訂用帳戶。 使用 az account set 命令來選取您帳戶底下的特定訂用帳戶 ID。
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 資料庫」伺服器。 一部伺服器可以管理多個資料庫。 一般而言,每個專案或每個使用者會使用個別的資料庫。
下列範例會在資源群組 myresourcegroup
的 westus
中建立名稱為 mydemoserver
的「適用於 MySQL 的 Azure 資料庫」伺服器。 此伺服器有一個名為 myadmin
的系統管理員。 這是一部一般用途、具有 2 個 vCore 的第 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
對應於基本、第 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 命令列工具建立資料庫
- 載入範例資料
- 查詢資料
- 更新資料
- 還原資料