如何部署和连接到 Azure Database for MySQL

已完成

大致了解 Azure Database for MySQL - 灵活服务器功能将有助于为基于 Web 的应用程序开发、测试和生产环境确定最佳的部署设置。 应在设计阶段做出关键决策,例如选择目标 Azure 区域、区域冗余高可用性和备份冗余。 其他决策(如分配计算和存储资源)则由随时间变化的使用模式驱动。

本模块的上一个单元应有助于设计和规划阶段。 现在,我们来重点关注如何在准备好在自己的解决方案中实现它后部署并连接到 Azure Database for MySQL 灵活服务器。

了解各种配置设置之间的依赖关系是在部署过程中做出正确选择的关键。 具体而言,请务必注意:

  • 启用了高可用性的服务器不支持禁用存储自动增长。
  • 虽然可以将服务器部署到特定的可用性区域中,但可突发层并不支持高可用性。

如何部署 Azure Database for MySQL 灵活服务器

可使用多种不同方法来预配 Azure Database for MySQL 灵活服务器。 虽然可使用完全自动化的部署,但最直接的部署方法是通过 Azure 门户图形用户界面 (GUI) 创建实例。 通过门户创建实例时,可以配置一系列服务器设置,这些设置可以分为五个组:基本信息、计算和存储、网络、安全性和标记。 每个组及其相应的设置选项显示在以下页面上:

  • “基本信息”页包括可用于配置以下内容的设置:

    • 项目详细信息:目标订阅和资源组的名称。

    • 服务器详细信息:

      • 服务器的名称
      • 目标 Azure 区域
      • MySQL 版本和计算层
      • 可用性区域编号

      “基本信息”Azure 门户灵活服务器部署页面的“项目”和“服务器”详细信息部分的屏幕截图。

    • 身份验证方法。 选择 MySQL 身份验证、Microsoft Entra ID 身份验证,或混合使用这两种方法。

      注意

      在此步骤中,可用性区域选择可能不可用,具体取决于所选的计算大小和区域。

  • 通过“配置服务器”链接从“基本信息”页访问的“计算 + 存储”页包括可用于配置以下内容的设置:

    • 计算。 计算层和计算大小选项。

    • 存储。 存储大小(以 GiB 为单位)、IOPS(或自动缩放)数和存储自动增长选项。

      “计算 + 存储”Azure 门户灵活服务器部署页面的“计算”和“存储”部分的屏幕截图。

    • 高可用性。 高可用性模式(同一区域或区域冗余)。

      “基本信息”Azure 门户灵活服务器部署页面的“高可用性”部分的屏幕截图。

    • 备份。 备份保持期和备份异地冗余选项。

      “计算 + 存储”Azure 门户灵活服务器部署页面的“高可用性”和“备份”部分的屏幕截图。

  • 使用“网络”页,可以指定连接方法。 根据自己的选择,还可以允许从任何 Azure 服务进行公共访问、配置防火墙规则、设置虚拟网络集成或创建专用终结点。

“网络连接”选项卡的屏幕截图,其中显示了连接方法、防火墙规则等选项。

  • 除默认配置的存储加密以外,“安全”页包含了用于配置数据加密以加密数据库、备份和静态日志的选项,而无需对应用程序进行任何更改

  • “标记”页添加了用于定义已部署资源的元数据的键值对。

如何连接到 Azure Database for MySQL 灵活服务器

在连接到灵活服务器之前,请考虑在部署期间实现的网络配置。 例如,如果灵活服务器配置了公共访问权限,并且你决定从 Azure Cloud Shell 或其他对数据库没有直接网络访问权限的客户端应用程序进行连接,则启用服务器防火墙的“允许从 Azure 中的任何 Azure 服务对此服务器进行公共访问”选项。 从本地应用程序服务器或已连接 Internet 的设备进行连接时,请将连接设备或服务的公共 IP 地址添加到防火墙例外列表。

对于来自在 Azure 中运行的 Azure VM 或容器化工作负载的安全连接,请考虑启用专用终结点。 使用专用终结点,可以通过专用网络安全地连接到灵活服务器,从而消除对公共 Internet 的暴露风险。 此外,请确保发起连接的网络允许通过 TCP 端口 3306 将出站流量发送到 Azure,这是 Azure Database for MySQL 灵活服务器所必需的。

由于新部署默认启用加密,因此需要 下载服务器上安装的公共证书,并在通过 TLS 1.2 建立连接时使用它。

满足网络和证书需求后,你应能够连接到 Azure Database for MySQL 灵活服务器,并通过多种不同的方式对其进行查询,包括使用:

  • Azure CLI (az mysql) 或 Azure Cloud Shell

    • 在 Azure CLI 中使用以下命令格式进行连接:az mysql flexible-server connect --name <server-name> --user <username>
  • mysql.exe 命令行实用工具

    • 在 MySQL 命令行工具中使用以下命令格式进行连接:mysql -h <server-name>.mysql.database.azure.com -u <username> -p
  • MySQL Workbench 图形工具

    • 在 MySQL Workbench 图形工具中使用以下连接详细信息:
      • 主机名<server-name>.mysql.database.azure.com
      • 端口:3306
      • 用户名<username>
      • 密码<your-password>
  • 使用 MySQL 扩展的 Azure Data Studio

    • 启动 Azure Data Studio 并确保已安装 MySQL 扩展。
    • 选择“新建连接”图标或导航到“文件”>”新建查询”。
    • 在“连接”对话框中,选择“MySQL”作为“连接类型”
    • 指定“连接详细信息”:
      • 服务器名称<server-name>.mysql.database.azure.com
      • 用户名<username>
      • 密码<your-password> - 或者可以使用 Microsoft Entra ID 身份验证登录。
      • 端口:3306
      • 数据库名称(可选):指定要连接到的特定数据库名称,或留空以列出所有数据库
    • SSL 模式:
      • 选择“需要”或“验证 CA”。
      • 如果使用“验证 CA”模式,请下载 SSL 证书
    • 选择“测试连接”以确保所有详细信息正确无误
    • (可选)可以通过选择“保存密码”来保存连接详细信息以供将来使用
    • 选择“连接”以建立与 Azure Database for MySQL 灵活服务器的连接。
  • 许多编程语言,例如 PHP、Java、Python、C#、C++、JavaScript、Rust、Go 和 Ruby。

下面是使用 PHP 的 MySQL 改进扩展 (mysqli) 类连接到 Azure Database for MySQL 灵活服务器的基本示例

<?php
$host = '<server-name>.mysql.database.azure.com';
$username = '<username>';
$password = '<your-password>';
$db_name = '<database-name>';

//Establish the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
    die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run a query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res)) {
    var_dump($row);
}

//Close the connection
mysqli_close($conn);
?>

注意

要详细了解如何以编程方式连接到 Azure Database for MySQL 灵活服务器,请参阅 Microsoft Learn