教程:使用 PowerShell 设计 Azure Database for MariaDB
重要
Azure Database for MariaDB 已列入停用计划。 强烈建议迁移到 Azure Database for MySQL。 有关迁移到 Azure Database for MySQL 的详细信息,请参阅 Azure Database for MariaDB 发生了什么情况?。
Azure Database for MariaDB 是云中基于 MariaDB 社区版数据库引擎的一种关系数据库服务。 本教程介绍如何使用 PowerShell 和其他实用程序来执行以下操作:
- 创建 Azure Database for MariaDB
- 配置服务器防火墙
- 使用 mysql 命令行工具创建数据库
- 加载示例数据
- 查询数据
- 更新数据
- 还原数据
先决条件
如果没有 Azure 订阅,请在开始前创建一个试用帐户。
如果选择在本地使用 PowerShell,则本文要求安装 Az PowerShell 模块,并使用 Connect-AzAccount cmdlet 连接到 Azure 帐户。 有关安装 Az PowerShell 模块的详细信息,请参阅安装 Azure PowerShell。
重要
尽管 Az.MariaDb PowerShell 模块为预览版,但必须使用以下命令从 Az PowerShell 模块单独安装它:Install-Module -Name Az.MariaDb -AllowPrerelease
。
如果这是你第一次使用 Azure Database for MariaDB 服务,必须注册 Microsoft.DBforMariaDB 资源提供程序。
Register-AzResourceProvider -ProviderNamespace Microsoft.DBforMariaDB
如果有多个 Azure 订阅,请选择应当计费的资源所在的相应订阅。 使用 Set-AzContext cmdlet 选择特定的订阅 ID。
Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000
创建资源组
使用 New-AzResourceGroup cmdlet 创建 Azure 资源组。 资源组是在其中以组的形式部署和管理 Azure 资源的逻辑容器。
以下示例在“中国东部 2”区域创建名为“myresourcegroup”的资源组 。
New-AzResourceGroup -Name myresourcegroup -Location chinaeast2
创建 Azure Database for MariaDB 服务器
使用 New-AzMariaDbServer
cmdlet 创建 Azure Database for MariaDB 服务器。 一个服务器可以管理多个数据库。 通常,每个项目或每个用户使用一个单独的数据库。
以下示例使用服务器管理员登录名 myadmin 在“中国东部 2”区域中的“myresourcegroup”资源组内创建名为“mydemoserver”的 MariaDB 服务器 。 此服务器是常规用途定价层中的第 5 代服务器,其中启用了 2 个 vCore 和异地冗余备份。 记下示例的第一行中使用的密码,因为这是 MariaDB 服务器管理员帐户的密码。
提示
服务器名称映射到 DNS 名称,必须在 Azure 中全局唯一。
$Password = Read-Host -Prompt 'Please enter your password' -AsSecureString
New-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup -Sku GP_Gen5_2 -GeoRedundantBackup Enabled -Location chinaeast2 -AdministratorUsername myadmin -AdministratorLoginPassword $Password
Sku 参数值遵循 pricing-tier_compute-generation_vCores 约定,如以下示例所示。
-Sku B_Gen5_1
映射到基本、第 5 代和 1 个 vCore。 此选项是可用的最小 SKU。-Sku GP_Gen5_32
映射到常规用途、第 5 层和 32 个 vCore。-Sku MO_Gen5_2
映射到内存优化、第 5 层和 2 个 vCore。
有关各区域和层级的有效 Sku 值的信息,请参阅 Azure Database for MariaDB 定价层。
如果轻量级计算和 I/O 足以满足工作负载要求,请考虑使用基本定价层。
重要
在基本定价层中创建的服务器以后无法扩展到常规用途或内存优化层级,并且无法异地复制。
配置防火墙规则
使用 New-AzMariaDbFirewallRule
cmdlet 创建 Azure Database for MariaDB 服务器级防火墙规则。 服务器级防火墙规则允许外部应用程序(如 mysql
命令行工具或 MariaDB Workbench)穿过 Azure Database for MariaDB 服务防火墙连接到服务器。
以下示例创建名为 AllowMyIP 的防火墙规则,该规则允许从特定的 IP 地址 (192.168.0.1) 进行连接。 替换与要从中进行连接的位置相对应的 IP 地址或 IP 地址范围。
New-AzMariaDbFirewallRule -Name AllowMyIP -ResourceGroupName myresourcegroup -ServerName mydemoserver -StartIPAddress 192.168.0.1 -EndIPAddress 192.168.0.1
注意
连接到 Azure Database for MariaDB 时,经端口 3306 进行通信。 如果尝试从企业网络内部进行连接,则可能不允许经端口 3306 的出站流量。 这种情况下,只有在 IT 部门打开了端口 3306 时,才能连接到服务器。
获取连接信息
若要连接到服务器,需要提供主机信息和访问凭据。 使用以下示例来确定连接信息。 记下 FullyQualifiedDomainName 和 AdministratorLogin 的值。
Get-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup |
Select-Object -Property FullyQualifiedDomainName, AdministratorLogin
FullyQualifiedDomainName AdministratorLogin
------------------------ ------------------
mydemoserver.mariadb.database.chinacloudapi.cn myadmin
使用 mysql 命令行工具连接到服务器
使用 mysql
命令行工具连接到服务器。 若要下载并安装该命令行工具,请参阅 MariaDB 社区下载。
mysql -h mydemoserver.mariadb.database.chinacloudapi.cn -u myadmin@mydemoserver -p
创建数据库
连接到服务器后,创建一个空数据库。
mysql> CREATE DATABASE mysampledb;
出现提示时,请运行以下命令,切换为连接此新建的数据库:
mysql> USE mysampledb;
在数据库中创建表
现已介绍了如何连接 Azure Database for MariaDB 数据库,接下来可以完成一些基本任务。
首先,创建表并加载一些数据。 创建一个存储清单信息的表。
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;
将数据库还原到以前的时间点
可以将服务器还原到以前的某个时间点。 将还原的数据复制到新服务器,现有服务器保持不变。 例如,如果意外删除了某个表,可以还原到删除时的时间点。 然后可以从服务器的已还原副本中检索缺少的表和数据。
若要还原服务器,请使用 Restore-AzMariaDbServer
PowerShell cmdlet。
运行还原命令
若要还原服务器,请在 PowerShell 中运行以下示例。
$restorePointInTime = (Get-Date).AddMinutes(-10)
Get-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup |
Restore-AzMariaDbServer -Name mydemoserver-restored -ResourceGroupName myresourcegroup -RestorePointInTime $restorePointInTime -UsePointInTimeRestore
将服务器还原到以前的某个时间点时,会创建新服务器。 原始服务器及其从指定时间点开始创建的数据库会复制到新服务器。
还原的服务器的位置值和定价层值与原始服务器保持相同。
还原过程完成后,找到新服务器,验证数据是否已按预期还原。 新服务器具有相同的服务器管理员登录名和密码,该登录名和密码在开始还原时对现有服务器有效。 可以从新服务器的“概述” 页更改密码。
还原期间创建的新服务器没有原始服务器上存在的 VNet 服务终结点。 必须单独为新服务器设置这些规则。 将从原始服务器还原防火墙规则。