Azure Database for MySQL 徽标

托管 MySQL 会说 MySQL

连接 Azure Database for MySQL 适用于 Excel、Google Sheets、AI 和 REST

Azure Database for MySQL 灵活服务器,版本 3306。该卡专为灵活服务器而设计,并在关键之处明确标明。

一个连接,每个表面

您的 Azure MySQL 数据可以存储在哪里

Query Streams 可以通过一个只读连接,从 Microsoft Excel、Google Sheets、Power BI、AI 助手(通过 MCP)和 REST 端点读取 Azure Database for MySQL 数据。此卡片适用于灵活服务器(当前版本),它是 Azure 三件套中的 MySQL 成员,而非 Azure PostgreSQL 的副本。两者之间存在一个值得注意的区别:PostgreSQL 端的代理会根据主机名强制使用 TLS,而 Query Streams 则根据复选框进行操作。

Azure Database for MySQL 就是通过网络传输的 MySQL。 — 这是标准驱动程序,因此以下所有指南均适用。唯一特定于 Azure MySQL 的部分是连接字符串,该部分将在后续章节中介绍。 连接详情.

  1. 为您的团队、供应商和合作伙伴
  2. Azure MySQL 到 Excel 微软 Excel · Excel 加载项

    将 Azure MySQL 的实时结果直接提取到工作表中,并按需刷新——支持桌面版 Excel、Excel Online 和 Microsoft 365。

    MySQL 指南
  3. Azure MySQL 到 Google Sheets 表格插件

    从侧边栏运行已保存的 Azure MySQL 查询,并将结果行拖放到工作表中。共享协作者可以自行刷新工作表。

    MySQL 指南
  4. 向 Nova 咨询 Azure MySQL 相关事宜 Nova AI · 文本转 SQL

    用简单的英语提问。Nova 已经了解您的 Azure MySQL 表,会自动编写并运行 SQL 语句,解释结果并绘制图表——无需编写查询语句,也无需提供任何凭据。

    Nova 的工作原理
  5. Azure MySQL 到数据查看器 结果共享 · 团队、供应商、合作伙伴 · 手机、平板电脑、台式机

    您可以与任何人(同事、供应商、合作伙伴)共享实时 Azure MySQL 查询结果,将其以可收藏的网格形式呈现,无论在手机、平板电脑还是台式机上打开,都能立即重新运行。他们看到的是查询结果,而不会看到 SQL 语句或凭据。

    数据查看器的工作原理
  6. 对于应用程序和系统
  7. Azure MySQL REST API HTTP 端点

    将 Azure MySQL 查询发布为任何应用程序都可以调用的经过身份验证的 JSON 终结点,符合 OpenAPI 3.1 规范,并预置了 Postman、Insomnia 和 Hoppscotch 集合。无需打开数据库端口。

    MySQL 指南
  8. Azure MySQL 到 Power BI Power Query M

    将生成的 Power Query M 粘贴到 Power BI 高级编辑器中,报表即可通过 HTTPS 读取 Azure MySQL 的实时结果——无需 ODBC 驱动程序,也无需打开数据库端口。

    Power BI 的工作原理
  9. Azure MySQL 到 Airtable 自动化平台

    按计划将 Azure MySQL 行同步到 Airtable,或者在 Airtable 自动化脚本中获取它们。

    MySQL 指南
  10. Azure MySQL 到 Baserow 自动化平台

    通过 REST 端点从 Azure MySQL 向 Baserow 表提供数据——无论是自托管还是 Baserow 云。

    MySQL 指南
  11. Azure MySQL 到 SeaTable 自动化平台

    无需导出文件或公开数据库,即可使用 Azure MySQL 数据保持 SeaTable 数据库的最新状态。

    MySQL 指南
  12. Azure MySQL 到 Smartsheet 自动化平台

    将 Azure MySQL 结果推送到 Smartsheet 网格中,以便计划和报告从源系统读取数据,而不是从上周的导出数据读取数据。

    MySQL 指南
  13. Azure MySQL 到 Anvil Anvil Works · 应用平台

    通过 REST 端点将 Anvil Python 应用程序与 Azure MySQL 连接起来,而不是将数据库凭据嵌入到应用程序中。

    MySQL 指南
  14. 人工智能工具
  15. Azure MySQL MCP 服务器 Claude、Cursor 和 MCP 客户端

    赋予 AI 助手对 Azure MySQL 的只读访问权限,并提供它编写正确 SQL 所需的架构——聊天中不包含凭据。

    MySQL 指南
  16. 已送达
  17. Azure MySQL 警报和报告 Slack · Discord · 电子邮件 · Webhook

    将 Azure MySQL 查询添加到计划中,并将查询结果发送到 Slack、Discord、电子邮件或签名 webhook,或者等到行数、阈值或百分比变化超过您设定的界限时才发送消息。

    警报和报告的工作原理

工作原理

5 个步骤,无需更改入站防火墙规则

01

将网络代理安装在可以访问服务器的位置。它只建立出站连接,因此无需启用公共访问权限——虚拟网络 (VNet) 内的虚拟机与私有端点通信是最佳方案,无需任何入站规则。

02

从 Azure 门户获取服务器名称。它以 .mysql.database.azure.com 结尾,该卡能够识别此后缀。

03

请直接输入用户名。Flexible 服务器不支持 user@servername 格式,如果您粘贴了这种格式的用户名,系统会阻止您。

04

启用 SSL。默认情况下已启用,此卡片上的复选框决定启用状态——背后没有主机名规则。

05

保存。Microsoft Excel、Google Sheets、Power BI、MCP 和 REST 都通过这一个连接读取数据,或者将其与其他数据源合并到一个只读语句中。

专题深度解析

Azure MySQL 能为你提供什么?

TLS 在此处遵循复选框,而不是主机名。

这是唯一一个直接复制 Azure PostgreSQL 页面是错误的地方,所以有必要明确说明。

  • 默认情况下启用 SSL,启用后连接将被加密。 — 代理向 MySQL 请求所需的 TLS 会话。
  • 关闭此功能后,代理将尝试建立未加密的连接。MySQL 路径中的任何设置都不会根据主机名进行更改,这正是此卡与 Azure PostgreSQL 的区别所在。
  • 原因在于结构性问题而非疏忽:代理维护着一个托管的 Postgres 主机名表,并强制对这些主机名使用 TLS,而 MySQL 没有对应的机制。这个复选框就是全部机制。
  • 加密并非证书验证。代理程序要求使用 TLS,但不会验证服务器的证书链,因此请将其视为防止网络窃听的保护措施,而不是证明您访问了什么内容的凭证。

灵活的服务器,以及用户名陷阱

Azure 提供了两种不同版本的 MySQL,但它们对用户名格式的定义却不尽相同。这张卡片表明了其中一种立场。

  • 此卡专为灵活服务器而设计。默认端口为 3306,服务器名称以 .mysql.database.azure.com 结尾。
  • 灵活服务器使用纯文本用户名。已停用的单服务器方案使用 user@servername 格式,如果您粘贴此类用户名,系统提示您删除后缀,而不是让 Azure 稍后将其作为身份验证失败而拒绝。
  • 那才是更容易发现问题的地方。@servername 登录在远端会失败,并显示通用的身份验证错误,导致用户重置原本正确的密码。
  • 密码开头或结尾带有空格也会被标记出来。这是剪贴板操作导致的,也会像普通身份验证错误一样失败。

私有端点非常适合代理。

因为代理程序会拨号出去但从不监听,所以暴露数据库服务器的通常原因并不适用。

  • 将代理程序部署在同一虚拟网络内的虚拟机上,并将其指向私有端点。公共访问可以保持关闭状态。
  • 无需添加入站防火墙规则,无需维护 IP 地址白名单,您的网络和我们的网络之间也无需 VPN。代理程序会自动打开对外连接。
  • 身份验证需要用户名和密码。Microsoft Entra ID 未集成到此连接器中,因此请使用作用域限定的 MySQL 登录来读取您打算公开的内容。
  • 只读用户值得花两分钟时间。查询流不会写入数据,但确保这一点的最安全方法是在数据库层面进行操作。
-- 普通 MySQL,只读,通过 TLS SELECT c.name, COUNT(o.id) AS orders, SUM(o.amount) AS revenue FROM customers AS c JOIN orders AS o ON o.customer_id = c.id WHERE o.placed_at >= NOW() - INTERVAL 30 DAY GROUP BY c.name ORDER BY revenue DESC;

每个数据库连接器共享

适用于所有数据库连接器

  • 仅限出站 — 代理程序会打开一个加密连接到查询流。无需转发入站端口,无需 VPN,无需 IP 允许列表,您的数据库信息不会暴露在互联网上。
  • 凭证保留 — 数据库用户名和密码存储在您安装代理的计算机上。Query Streams 永远不会收到这些信息,也无法自行访问您的数据库。
  • 只读,强制执行 ——一次只执行一条语句,仅限 SELECT 及其相关语句。写入操作会在发送到服务器之前就被本地机器拒绝,而不是依赖于其他人设置的权限。
  • 部署任意数量的代理 每个站点、区域或云端只需一个代理。所有数据源都显示在同一个下拉菜单中,因此无需了解哪个代理托管哪些数据源。

查询保存后您将获得什么?

  • 分享的是能力,而不是 SQL — 同事或外部合作伙伴可以运行您的查询并更改其筛选条件,而无需查看其背后的语句。
  • 双向过滤 — 您可以自己将它们声明为 @variables,或者让连接器发现 WHERE 子句中已有的字面值,并将其作为下拉列表提供。
  • 随时随地阅读 — Microsoft Excel、Google Sheets、Power BI、REST API、MCP 上的 AI 助手、查询生成器和 Nova 都读取同一个已保存的查询。
  • 同时运行多个程序 — 将五个已保存的查询分别保存到五个工作表标签中,同时进行流式传输,无论结果有多大。
  • 将其连接到您已连接的任何其他内容 — 用一条只读语句访问另一个数据库、业务 API 或文件文件夹。

跨源 SQL

将 Azure MySQL 与您的其他数据连接起来

一条语句可以同时跨越 Azure MySQL 和其他连接。每个数据源只运行它能够执行的部分,并将结果流式传输回来,连接操作则在中心位置集中执行——各个数据源之间互不通信,也不会复制任何数据。

3 个连接 · 3 个代理

Azure Database for MySQL 托管 MySQL
PostgreSQL 关系引擎
条纹 付款与账单

一份声明

——没有任何复制、合并或安排操作。
选择   c.region,COUNT(*) AS orders,SUM(i.amount_due) AS invoiced
从     azure_mysql.shopdb.orders1 f
连接     pg_crm.public.customers2   c ON c.id = f.customer_id
连接     计费.stripe.invoices3   i ON i.customer = c.stripe_id
GROUP BY c.区域
ORDER BY 发票上的描述;

这三个部分分别是连接、模式和表——连接名称就是你给它起的任何名字。这里用列举例说明;你的表就是你自己的表。所有部分都采用只读模式:仅支持 SELECT、WITH 和 EXPLAIN 语句,并且对单个查询中每个数据源可以传输的数据量有限制。 联合查询的工作原理

连接详情

Azure MySQL 需要什么

主持人
<server>.mysql.database.azure.com
港口
3306
司机
MySqlConnector 由代理程序携带——无需在 Azure 端安装任何软件。
用户名
不带 @servername 后缀的普通服务器。该卡不接受单服务器表单。
TLS
由“使用 SSL”复选框控制,默认启用。启用后会进行加密;证书链不会被验证。此卡上的主机名不会强制启用。
池化
没有暴露,代理在此处不应用任何池化器适应性调整。
验证
用户名和密码。此连接器不支持 Microsoft Entra ID。
已保存
MySQL,Azure MySQL 仅作为标识保留——实际上并没有名为 Azure MySQL 的连接类型。
默认架构
数据库本身。MySQL 没有单独的模式层,因此联合引用会携带数据库名称。
不是这张卡
已停用的单服务器产品,以及 Azure SQL(即 SQL Server,它有自己的卡)。

关于 TLS 的真实情况才是最有用的。Azure 官方指南建议使用 TLS,此卡片也默认启用 TLS,但代理程序并没有对主机名进行任何特殊处理来确保加密——如果您取消选中该复选框,它将尝试在不加密的情况下连接。Azure PostgreSQL 的加密确实是在代理程序端强制执行的,两者的区别在于 Postgres 路径上存在一个查找表,而 MySQL 路径上则不存在。明确说明这一点比暗示某种并不存在的保护措施更有意义。

用户名检查之所以重要,是因为如果没有它,失败的后果会非常严重。例如,使用 @servername 登录到 Flexible Server 时,会返回一个普通的身份验证错误,与密码错误难以区分,导致用户频繁更换原本正确的凭据。如果在表单中用一句话指出错误原因,就能将原本需要技术支持的对话缩短到五秒钟就能解决。

对于跨源查询,MySQL 使用数据库而非模式进行限定,因此您调用的名为 azure_mysql 的连接会访问名为 azure_mysql.shopdb.orders 的表——数据库的位置相当于 Postgres 卡片上的模式。它通过一条只读语句连接到 CSV 文件文件夹、本地记录系统或计费 API——无需复制任何内容,也无需安排任何任务。

供应商文档: azure.microsoft.com

常问问题

关于 Azure Database for MySQL 的问题

哪些工具可以通过查询流读取 Azure Database for MySQL 数据?

所有这些工具,只需一次连接即可使用:Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、定时提醒和报表。只需连接一次数据库,所有平台都使用同一个只读连接——无需为每个工具单独设置,也无需创建数据副本。

我是否需要为我的 Azure Database for MySQL 数据库打开防火墙端口?

不。Query Streams 网络代理运行在您的网络内部,并打开一个单独的出站加密连接。它不会监听入站流量,无需 VPN,数据库也会保留其现有的防火墙规则。

查询流能否更改 Azure Database for MySQL 中的数据?

不。代理在执行时强制执行只读模式——一次只执行一条语句,仅限 SELECT 及其相关语句。凭据保留在代理上,绝不会发送到查询流。

Query Streams 需要哪些组件才能连接到 Azure Database for MySQL?

可访问的主机、角色及其密码——代理程序已包含驱动程序,因此无需在数据库上安装任何内容。主机:<server>.mysql.database.azure.com。端口:3306。驱动程序:MySqlConnector,由代理程序携带——无需在 Azure 端安装任何内容。用户名:普通用户名,不带 @servername 后缀。此卡片不接受单服务器表单。

我可以在同一个查询中将 Azure Database for MySQL 连接到另一个数据库吗?

是的,这就是联合查询。一条语句可以同时引用 Azure Database for MySQL 和其他连接,格式为 connection.schema.table。每个数据源只运行它能够执行的部分,并将结果流式传输回来;连接操作在中心进行,因此数据源之间不会相互连接,也不会进行任何复制或调度。所有部分(SELECT、WITH 和 EXPLAIN)都采用只读模式,并且单个数据源在单次查询中可以传输的数据量有限制。联合查询是一项计划功能;联合查询页面会显示当前的数据源和大小限制。

连接 Azure Database for MySQL 与连接 MySQL 有什么不同?

仅需连接字符串。Azure Database for MySQL 使用 MySQL 网络协议,因此筛选器、计划任务、共享、Excel 和 Google Sheets 加载项以及 MCP 服务器的行为都完全相同。Azure MySQL 卡片会自动填充提供商所需的主机、端口和 SSL 设置。

是否有 Azure MySQL 到 Excel 的指南?

是的——这是 MySQL 指南,而且就 Azure Database for MySQL 而言,它的内容是正确的。Azure MySQL 使用 MySQL 通信协议,因此 Azure MySQL 连接到 Excel、Azure MySQL 连接到 Google Sheets 以及其他所有目标平台都遵循相同的步骤。唯一 Azure MySQL 特有的部分是连接字符串,Azure MySQL 卡片会自动为您填写。

将 Azure MySQL 部署在工作发生的地方

安装代理,将其指向您的数据库,然后选择目标位置。

只读 仅限出站 凭证保留在代理人身上。