一个连接,每个表面
您的 Azure MySQL 数据可以存储在哪里
- 1 出站连接
- 0 入境口岸
- 只读 · 凭据保留
运行
- 为您的团队、供应商和合作伙伴
-
在 Excel 插件 · 按需刷新
-
谷歌工作表 附加组件 · 按需刷新
-
新星人工智能 用简单的英语提问 · 文本转 SQL
-
数据查看器 分享实时结果 · 团队、供应商、合作伙伴 · 任何设备
- 对于应用程序和系统
-
REST API JSON 端点 · OpenAPI 3.1
-
Power BI Power Query M
-
计划同步 Google Sheets · Airtable · Baserow · SeaTable · Smartsheet · Anvil
- 人工智能工具
-
人工智能助手 Claude · Cursor · MCP 服务器
- 已送达
-
警报和报告 Slack · Discord · 电子邮件 · Webhook
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 的部分是连接字符串,该部分将在后续章节中介绍。 连接详情.
- 为您的团队、供应商和合作伙伴
-
Azure MySQL 到 Excel 微软 Excel · Excel 加载项
将 Azure MySQL 的实时结果直接提取到工作表中,并按需刷新——支持桌面版 Excel、Excel Online 和 Microsoft 365。
MySQL 指南 -
Azure MySQL 到 Google Sheets 表格插件
从侧边栏运行已保存的 Azure MySQL 查询,并将结果行拖放到工作表中。共享协作者可以自行刷新工作表。
MySQL 指南 -
向 Nova 咨询 Azure MySQL 相关事宜 Nova AI · 文本转 SQL
用简单的英语提问。Nova 已经了解您的 Azure MySQL 表,会自动编写并运行 SQL 语句,解释结果并绘制图表——无需编写查询语句,也无需提供任何凭据。
Nova 的工作原理 -
Azure MySQL 到数据查看器 结果共享 · 团队、供应商、合作伙伴 · 手机、平板电脑、台式机
您可以与任何人(同事、供应商、合作伙伴)共享实时 Azure MySQL 查询结果,将其以可收藏的网格形式呈现,无论在手机、平板电脑还是台式机上打开,都能立即重新运行。他们看到的是查询结果,而不会看到 SQL 语句或凭据。
数据查看器的工作原理 - 对于应用程序和系统
-
Azure MySQL REST API HTTP 端点
将 Azure MySQL 查询发布为任何应用程序都可以调用的经过身份验证的 JSON 终结点,符合 OpenAPI 3.1 规范,并预置了 Postman、Insomnia 和 Hoppscotch 集合。无需打开数据库端口。
MySQL 指南 -
Azure MySQL 到 Power BI Power Query M
将生成的 Power Query M 粘贴到 Power BI 高级编辑器中,报表即可通过 HTTPS 读取 Azure MySQL 的实时结果——无需 ODBC 驱动程序,也无需打开数据库端口。
Power BI 的工作原理 -
Azure MySQL 到 Airtable 自动化平台
按计划将 Azure MySQL 行同步到 Airtable,或者在 Airtable 自动化脚本中获取它们。
MySQL 指南 -
Azure MySQL 到 Baserow 自动化平台
通过 REST 端点从 Azure MySQL 向 Baserow 表提供数据——无论是自托管还是 Baserow 云。
MySQL 指南 -
Azure MySQL 到 SeaTable 自动化平台
无需导出文件或公开数据库,即可使用 Azure MySQL 数据保持 SeaTable 数据库的最新状态。
MySQL 指南 -
Azure MySQL 到 Smartsheet 自动化平台
将 Azure MySQL 结果推送到 Smartsheet 网格中,以便计划和报告从源系统读取数据,而不是从上周的导出数据读取数据。
MySQL 指南 -
Azure MySQL 到 Anvil Anvil Works · 应用平台
通过 REST 端点将 Anvil Python 应用程序与 Azure MySQL 连接起来,而不是将数据库凭据嵌入到应用程序中。
MySQL 指南 - 人工智能工具
-
Azure MySQL MCP 服务器 Claude、Cursor 和 MCP 客户端
赋予 AI 助手对 Azure MySQL 的只读访问权限,并提供它编写正确 SQL 所需的架构——聊天中不包含凭据。
MySQL 指南 - 已送达
-
Azure MySQL 警报和报告 Slack · Discord · 电子邮件 · Webhook
将 Azure MySQL 查询添加到计划中,并将查询结果发送到 Slack、Discord、电子邮件或签名 webhook,或者等到行数、阈值或百分比变化超过您设定的界限时才发送消息。
警报和报告的工作原理
工作原理
5 个步骤,无需更改入站防火墙规则
将网络代理安装在可以访问服务器的位置。它只建立出站连接,因此无需启用公共访问权限——虚拟网络 (VNet) 内的虚拟机与私有端点通信是最佳方案,无需任何入站规则。
从 Azure 门户获取服务器名称。它以 .mysql.database.azure.com 结尾,该卡能够识别此后缀。
请直接输入用户名。Flexible 服务器不支持 user@servername 格式,如果您粘贴了这种格式的用户名,系统会阻止您。
启用 SSL。默认情况下已启用,此卡片上的复选框决定启用状态——背后没有主机名规则。
保存。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 个代理
一份声明
——没有任何复制、合并或安排操作。
选择 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 卡片会自动为您填写。

