你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何使用 Azure Migrate 设备发现在数据中心的服务器上运行的 MySQL 数据库实例。 发现过程是无代理的;目标服务器上未安装代理。
支持的区域
下表列出了支持预览版 MySQL 发现和评估的区域:
| 地理 | 地区 |
|---|---|
| 亚太 | 东南亚 |
| 澳大利亚 | 澳大利亚东部 |
| 加拿大 | 加拿大中部 |
| 欧洲 | 欧洲北部 欧洲西部 |
| 法国 | 法国中部 |
| 日本 | 日本东部 |
| 韩国 | 韩国中部 |
| 英国 | 英国南部 |
| 美国 | 美国中部 美国西部2 |
先决条件
一份 Azure 订阅。 如果没有帐户,请创建 一个免费帐户。
在开始发现 MySQL 数据库实例之前,请使用以下链接创建 Azure Migrate 项目,并按照其中一个 受支持区域的要求部署设备:
创建项目后,请确保已使用 Azure Migrate 设备完成服务器发现。
确保通过向设备配置管理器提供服务器凭据来完成 软件清单发现。
注释
仅支持使用公共终结点连接创建的 Azure Migrate 项目。 预览版不支持专用终结点项目。
提供 MySQL 凭据
打开设备配置管理器,完成设备的先决条件检查和注册。
导航到“管理凭据和发现源”面板。
在步骤 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';- 确保与添加的 MySQL 凭据对应的用户具有以下权限:
若要在 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 实例将在刷新后开始显示在清单中。
在“中心”页上的“Azure Migrate: 发现和评估”磁贴上,选择“已发现的服务器”下方的数字。
选择筛选器 工作负荷 == 数据库 和 数据库类型 == MySQL ,以查看环境中运行 MySQL 数据库实例的所有服务器的列表。
若要查看每个已发现服务器中 MySQL 数据库实例的基本信息,请选择相应服务器的“数据库实例”列中的数字。
在 DB 实例 页上查看以下信息:
- MySQL 服务器和实例名称
- MySQL 版本类型、版本号和版本支持状态
- 实例中的用户数据库数
- Azure Migrate 连接状态、数据库引擎状态、首次发现时间和上次更新时间
小窍门
选择 列 以筛选数据。
后续步骤
- 了解如何 创建和运行 MySQL 评估。
- 详细了解 如何计算 MySQL 评估。