你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

发现数据中心中运行的 MySQL 数据库实例(预览版)

本文介绍如何使用 Azure Migrate 设备发现在数据中心的服务器上运行的 MySQL 数据库实例。 发现过程是无代理的;目标服务器上未安装代理。

支持的区域

下表列出了支持预览版 MySQL 发现和评估的区域:

地理 地区
亚太 东南亚
澳大利亚 澳大利亚东部
加拿大 加拿大中部
欧洲 欧洲北部
欧洲西部
法国 法国中部
日本 日本东部
韩国 韩国中部
英国 英国南部
美国 美国中部
美国西部2

先决条件

注释

仅支持使用公共终结点连接创建的 Azure Migrate 项目。 预览版不支持专用终结点项目。

提供 MySQL 凭据

  1. 打开设备配置管理器,完成设备的先决条件检查和注册。

  2. 导航到“管理凭据和发现源”面板。

  3. 在步骤 3:选择 MySQL 身份验证 凭据类型、提供友好名称、输入 MySQL 用户名和密码,然后选择“ 保存”。

    注释

    • 确保与添加的 MySQL 凭据对应的用户具有以下权限:
      • 选择对 information_schema 表的权限。
      • 在 mysql.users 表上配置权限。
    • 对于 MySQL 发现,请通过配置必要的防火墙规则和 MySQL 用户权限,确保允许设备的 IP 或域。 还应将 my.cnf 中的 bind-address 设置为允许外部连接(如果需要)。
    • 使用以下命令向 MySQL 用户授予必要的权限
     GRANT USAGE ON *.* TO 'username'@'ip';
     GRANT PROCESS ON *.* TO 'username'@'ip';
     GRANT SELECT (User, Host, Super_priv, File_priv, Create_tablespace_priv, Shutdown_priv) ON mysql.user TO 'username'@'ip';
     GRANT SELECT ON information_schema.* TO 'username'@'ip';
     GRANT SELECT ON performance_schema.* TO 'username'@'ip';  
    

若要在 Azure Migrate 中启用发现和评估,可以创建具有最低所需权限的自定义 MySQL 用户帐户。 使用以下脚本创建帐户并授予设备计算机的访问权限。

  • CREATE USER 权限 → 创建新用户。
  • GRANT OPTION 权限 → 向新用户授予权限。
  • 在 mysql.user 上执行 SELECT 以进行存在性检查。
  • 进程权限 → 如果要在创建后验证与进程相关的授予。

-- MySQL Script to Create a Least-Privilege User for Azure Migrate
-- Replace @username, @password, and @ip with actual values before execution.

SET @username = 'your_username';
SET @password = 'your_password';
SET @ip = 'your_appliance_ip';

-- Check if the user already exists
SELECT CASE
    WHEN EXISTS (SELECT 1 FROM mysql.user WHERE user = @username AND host = @ip)
        THEN CONCAT('User ', @username, '@', @ip, ' already exists, skipping creation')
    ELSE
        CONCAT('User ', @username, '@', @ip, ' does not exist, proceeding with creation')
END AS user_check;

-- Create the user if not exists
CREATE USER IF NOT EXISTS @username@'@ip' IDENTIFIED BY @password;

-- Grant minimal required privileges
GRANT USAGE ON *.* TO @username@'@ip';
GRANT PROCESS ON *.* TO @username@'@ip';

-- Grant SELECT on specific columns in mysql.user
GRANT SELECT (User, Host, Super_priv, File_priv, Create_tablespace_priv, Shutdown_priv)
ON mysql.user TO @username@'@ip';

-- Grant SELECT on information_schema and performance_schema
GRANT SELECT ON information_schema.* TO @username@'@ip';
GRANT SELECT ON performance_schema.* TO @username@'@ip';

-- Apply changes
FLUSH PRIVILEGES;

-- Log success
SELECT CONCAT('Azure Migrate user ', @username, '@', @ip, ' created successfully with least privileges.') AS result;

通过 MySQL 客户端使用以下命令执行脚本。

mysql -u root -p -e "SET @username='myuser'; SET @password='mypassword'; SET @ip='appliance_ip'; SOURCE CreateUser.sql;"

通过 “发现的服务器 ”视图,可以在发现启动大约 24 小时后查看发现的 MySQL 数据库。 若要加快 MySQL 实例的发现,请执行以下步骤:

  • 在设备配置管理器上添加 MySQL 凭据后,重启设备上的发现服务。
  • 在 Azure Migrate 项目中,导航到“服务器”、“数据库”和“Web 应用”边栏选项卡。 在此选项卡上,找到“评估工具”部分右侧的“设备”。
  • 选择与总计对比的预计数字。 这会将你带到“设备”边栏选项卡。 选择添加了凭据的设备。
  • 选择设备屏幕底部提供的“刷新服务”链接。 这将重启所有服务,MySQL 实例将在刷新后开始显示在清单中。
  1. 在“中心”页上的“Azure Migrate: 发现和评估”磁贴上,选择“已发现的服务器”下方的数字。

    屏幕截图显示了发现的服务器。

  2. 选择筛选器 工作负荷 == 数据库数据库类型 == MySQL ,以查看环境中运行 MySQL 数据库实例的所有服务器的列表。

  3. 若要查看每个已发现服务器中 MySQL 数据库实例的基本信息,请选择相应服务器的“数据库实例”列中的数字。 

    屏幕截图显示了数据库实例。

  4. DB 实例 页上查看以下信息:

    • MySQL 服务器和实例名称
    • MySQL 版本类型、版本号和版本支持状态
    • 实例中的用户数据库数
    • Azure Migrate 连接状态、数据库引擎状态、首次发现时间和上次更新时间

    小窍门

    选择 以筛选数据。

    屏幕截图显示了数据库实例的概述。

后续步骤