使用 Azure MCP 服务器,可以使用自然语言提示管理 Azure Database for MySQL 服务器、数据库和表。 无需复杂的语法即可简化 MySQL 资源管理。
Azure Database for MySQL 是由 MySQL 社区版提供支持的完全托管的关系数据库服务。 使用它在 Azure 中托管 MySQL 数据库。 它处理具有可预测性能和动态可伸缩性的任务关键型工作负荷。
注释
工具参数:Azure MCP 服务器工具为完成任务所需的数据定义参数。 其中一些参数特定于每个工具,如下所示。 其他参数是全局参数,由所有工具共享。 有关详细信息,请参阅 工具参数。
数据库:列出所有数据库
列出指定 Azure Database for MySQL 灵活服务器实例上可用的所有数据库。 此命令提供数据库结构的可见性,有助于识别用于连接和查询作的数据库。
示例提示包括:
- 列出数据库:“使用用户”dbadmin“在资源组”database-rg“中列出服务器”my-mysql-server“上的所有数据库
- 显示数据库:“使用用户”appuser“在资源组”prod-rg“中显示 MySQL 服务器”prod-mysql-server“上的所有数据库
- 按名称筛选:“列出资源组”dev-rg“中的服务器”dev-mysql-server“上的数据库,其中包含以”test“开头的用户”developer”
- 资源组中的列表:“使用用户”analytics-rg“在资源组”analytics-rg“中列出服务器”analytics-mysql-server“上的数据库”
- 显示用户可访问的数据库:“列出资源组”reporting-rg“中服务器”report-mysql-server“上的用户”readonly“访问的数据库
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
数据库:查询
对 Azure Database for MySQL 灵活服务器上的数据库执行安全的只读 SQL SELECT 查询。 使用此工具在不修改表数据的情况下浏览或检索表数据。
最佳实践:
- 仅列出所需的列(避免
SELECT *)。 - 添加 WHERE 筛选器以缩小结果范围。
- 使用 LIMIT/OFFSET 进行分页。
- 将 ORDER BY 用于确定性结果。
- 避免返回不必要的敏感数据。
允许:
- 仅允许单个 SELECT 语句。
不允许:
- 非 SELECT 语句(INSERT、UPDATE、DELETE、REPLACE、MERGE、TRUNCATE、ALTER、CREATE、DROP)。
- 多语句。
- 隐藏写入作的注释。
- 事务控制语句(BEGIN、COMMIT、ROLLBACK)。
- INTO OUTFILE 和其他破坏性关键字。
Example:
SELECT ID, name, status FROM customers WHERE status = 'Active' ORDER BY name LIMIT 50;
示例提示包括:
- 运行查询:“运行查询”SELECT ID, name FROM customers WHERE status = 'Active' ORDER BY name LIMIT 50' on database 'salesdb' on server 'prod-mysql-server' in resource group 'sales-rg' with user 'appuser'”
- 对行进行计数:“运行查询 SELECT COUNT} FROM orders WHERE status = 'completed' on database 'salesdb' on server 'prod-mysql-server' in resource group 'sales-rg' with user 'analyst'”
- 筛选的查询:“在资源组”app-rg“中运行查询”SELECT name FROM users WHERE created_at > '2025-01-01' ORDER BY created_at LIMIT 25' on server 'appdb' 上的服务器 'app-mysql-server' 与用户 'developer'”
- 热门产品:“运行查询”SELECT product_id, SUM(quantity) AS TOTAL FROM sales WHERE sale_date >= '2025-01-01' GROUP BY product_id ORDER BY TOTAL DESC LIMIT 10' on server 'analytics-mysql-server' 上的服务器 'analytics-mysql-server' 上的数据库 'analytics-mysql-server' 与用户 'analyst'”
- 非重复值:“使用用户”readonly“在资源组”inventory-rg“中的服务器”inventory-mysql-server“上对数据库”INVENTORY-mysql-server“运行查询”SELECT DISTINCT category FROM products LIMIT 20”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
| 数据库 | 必选 | 要访问的 MySQL 数据库。 |
| 查询 | 必选 | 要针对 MySQL 数据库执行的 SQL 查询。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
服务器:配置获取
检索指定的 Azure Database for MySQL 灵活服务器实例的综合配置详细信息。 此命令提供有关服务器设置、性能参数、安全配置和作特征的见解,这些特征对于数据库管理和优化至关重要。 它以 JSON 格式返回配置数据,包括ServerName、Location、Version、SKU、StorageSizeGB和BackupRetentionDaysGeoRedundantBackup属性。
示例提示包括:
- 获取服务器配置:“使用用户”dbadmin“在资源组”database-rg“中获取服务器”prod-mysql-server“的配置详细信息
- 显示版本和 SKU:“使用用户”developer“在资源组”app-rg“中显示服务器”app-mysql-server“的 MySQL 引擎版本和 SKU
- 获取备份保留:“用户”backup-admin“在资源组”backup-rg“中,服务器”backup-mysql-server“的备份保留期是多少?
- 显示存储分配:“使用用户”analytics-rg“在资源组”analytics-rg“中显示服务器”analytics-mysql-server“的存储分配”
- 获取完整配置:“使用用户”sysadmin“在资源组”prod-rg“中获取服务器”prod-mysql-server“的完整配置”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
服务器:列出资源组中的所有实例
列出指定资源组中的所有 Azure Database for MySQL 灵活服务器实例。 此命令提供可用 MySQL 服务器资源的清单,包括其名称和当前状态,以便可以有效地管理服务器和计划资源。
示例提示包括:
- 列出服务器:“使用用户”dbadmin“列出资源组”database-rg“中的所有 MySQL 灵活服务器实例”
- 列出资源组中的服务器:“使用用户'sysadmin'列出资源组'prod-rg'中的 MySQL 服务器”
- 按区域筛选:“在资源组”eastus-rg“中”eastus-rg“中显示”eastus“中的 MySQL 服务器,其中包含用户”operator”
- 显示服务器状态:“使用用户”monitor“列出服务器及其资源组”monitoring-rg“中的当前状态
- 按名称查找服务器:“使用用户”developer“在资源组”prod-rg“中查找名为”prod-mysql-server“的服务器”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
服务器:获取参数
检索 Azure Database for MySQL 灵活服务器上的单个服务器配置参数的当前值。 使用此服务器命令在更改设置之前检查设置,例如 max_connections, wait_timeout或 slow_query_log。
示例提示包括:
- 获取参数值:“使用用户”dbadmin“获取资源组”database-rg“中服务器”prod-mysql-server“的参数”max_connections“的值
- 检查slow_query_log:“使用用户”analytics-rg“在资源组”analytics-rg“中的服务器”analytics-mysql-server“上获取参数”slow_query_log”
- 获取wait_timeout:“使用用户”developer“在资源组”app-rg“中显示服务器”app-mysql-server“的参数”wait_timeout“值
- 显示缓冲池大小:“使用用户”sysadmin“在资源组”prod-rg“中获取服务器”prod-mysql-server“的参数”innodb_buffer_pool_size”
- 在更改之前检索参数:“在更新前使用用户”dba“在资源组”performance-rg“中检索服务器”perf-mysql-server“上的参数”max_allowed_packet”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
| 参数 | 必选 | 要访问的 MySQL 参数。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
服务器:设置参数
将 MySQL 服务器配置参数设置为新值或更新。 使用此命令可以优化性能、安全性或作行为。 此命令允许使用验证进行微调的配置管理,以确保参数更改与服务器的当前状态和约束兼容。
示例提示包括:
- 设置参数:“将参数”max_connections“设置为资源组”database-rg“中具有用户”dbadmin“的服务器”prod-mysql-server“上的值”500”
- 启用慢查询日志:“将参数”slow_query_log“设置为资源组”analytics-rg“中的服务器”analytics-mysql-server“上的值”ON“,其中包含用户'dba'”
- 调整超时:“将参数”wait_timeout“设置为资源组”app-rg“中具有用户”sysadmin“的服务器”app-mysql-server“上的值”300”
- 增加缓冲池:“将参数”innodb_buffer_pool_size“设置为资源组”prod-rg“中具有用户”dba“的服务器”prod-mysql-server“上的值”2G”
- 更改允许的最大数据包数:“将参数”max_allowed_packet“设置为资源组”performance-rg“中的服务器”perf-mysql-server“上的值”64M“,并将用户”dbadmin“设置为”performance-rg”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
| 参数 | 必选 | 要访问的 MySQL 参数。 |
| 价值 | 必选 | 要为 MySQL 参数设置的值。 |
破坏性: ✅ |幂等: ✅ |开放世界: ❌ |只读: ❌ |机密: ❌ |本地必需: ❌
表:列出数据库中的所有表
枚举 Azure Database for MySQL 灵活服务器实例上指定数据库中的所有表。 此命令提供表对象的完整清单,有助于对开发任务进行数据库浏览、架构分析和数据体系结构理解。
示例提示包括:
- 列出表:“使用用户”appuser“在资源组”sales-rg“中的服务器”prod-mysql-server“上列出数据库'salesdb'中的所有表”
- 显示表:“用户”developer“在资源组”inventory-rg“中的服务器”inventory-mysql-server“上的数据库”inventory-mysql-server“中存在哪些表?
- 筛选表:“使用用户”developer“在资源组”app-rg“中的服务器”app-mysql-server“上的数据库”appdb“中以”tmp_“开头的表
- 计数表:“资源组”analytics-rg“中的服务器”analytics-mysql-server“上的数据库”analytics“中有多少个表与用户”analytics-rg“?”
- 查找表:“在资源组”sales-rg“中具有用户”readonly“的资源组”sales-mysql-server“上的数据库'salesdb'中查找表'orders'”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
| 数据库 | 必选 | 要访问的 MySQL 数据库。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌
表:获取表架构
检索 Azure Database for MySQL 灵活服务器数据库中特定表的详细架构信息。 此命令提供全面的元数据,包括列定义、数据类型、约束、索引和关系。 此信息对于了解表结构和支持应用程序开发至关重要。
示例提示包括:
- 获取表架构:“在资源组”sales-rg“中具有用户”developer“的资源组”sales-rg“中的服务器”sales-mysql-server“上的数据库”salesdb“中显示表'orders'的架构”
- 获取列列表:“使用用户”appuser“在资源组”crm-rg“中的服务器”crm-mysql-server“的数据库”crm“中列出表”customers“的列和数据类型
- 显示索引信息:“在资源组”billing-rg“中的服务器”billing-mysql-server“上的数据库”billing-mysql-server“中显示表”事务“的索引,并显示用户”analyst“”
- 查找主键:“资源组”auth-rg“中数据库”auth“中表”users“的主键是什么?
- 显示完整定义:“在资源组”inventory-rg“中具有用户”readonly“的资源组”inventory-mysql-server“上的数据库”inventory-mysql-server“中获取表”inventory_items“的完整表定义”
| 参数 | 必需还是可选 | Description |
|---|---|---|
| 资源组 | 必选 | Azure 资源组的名称。 这是 Azure 资源的逻辑容器。 |
| User | 必选 | 用于访问 MySQL 服务器的用户名。 |
| 服务器 | 必选 | 要访问的 MySQL 服务器。 |
| 数据库 | 必选 | 要访问的 MySQL 数据库。 |
| 表 | 必选 | 要访问的 MySQL 表。 |
破坏性: ❌ |幂等: ✅ |开放世界: ❌ |只读: ✅ |机密: ❌ |本地必需: ❌