You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service与MySQL Database之间的专用终结点连接超时问题排查求助

排查Azure App Service与MySQL私有端点连接超时问题

你已经完成了私有连接的基础配置,但仍出现超时问题,结合你的现有环境,我推荐从以下几个方向深入排查:

1. 确认MySQL服务器的专用终结点与网络访问设置

  • 首先检查专用终结点MySQLEndPoint的状态是否为已批准,如果处于待审批状态,连接会直接失败。
  • 进入MySQL服务器的网络配置页面,确认公共网络访问设置为“禁用”或者“允许选定的网络”(如果是后者,建议完全禁用公共访问来强制流量走私有端点,避免公共IP白名单的干扰)。

2. 验证DNS解析的准确性

虽然你在Kudu中ping到了正确的私有IP(10.1.1.4),但可以进一步用以下命令确认解析的一致性:

nslookup your-mysql-server-name.mysql.database.azure.com

确保返回的IP和MySQLEndPoint的私有IP完全匹配。另外,确认App Service没有配置自定义DNS,避免覆盖默认的VNet DNS解析逻辑。

3. 检查子网的NSG规则是否允许流量

针对app_subnet和mysql_subnet的网络安全组,必须配置以下关键规则:

  • app_subnet出站规则:允许源地址10.1.2.0/24访问目标地址10.1.1.0/24的3306端口(MySQL默认端口),规则优先级要高于任何拒绝类规则。
  • mysql_subnet入站规则:允许源地址10.1.2.0/24访问目标地址10.1.1.0/24的3306端口,同样确保优先级足够高,不会被其他规则覆盖。

4. 确认路由表配置

由于你设置了WEBSITE_VNET_ROUTE_ALL=1,App Service的所有流量都会遵循VNet路由表:

  • 检查app_subnet关联的路由表,确保存在一条路由,将目标地址10.1.1.0/24(mysql_subnet网段)的流量导向VNet内部(默认路由即可,无需指向互联网网关),避免路由规则错误地将这些流量导向外部。

5. 测试端口连通性(关键步骤)

Ping成功仅说明IP可达,但不代表端口开放。在Kudu的BASH环境中执行以下命令测试3306端口:

nc -zv your-mysql-server-name.mysql.database.azure.com 3306

或者用telnet:

telnet your-mysql-server-name.mysql.database.azure.com 3306

如果命令返回连接失败,基本可以确定是NSG或路由表的规则阻止了流量;如果连接成功,那问题可能出在MySQL的权限配置或应用代码上(虽然你说凭据正确,但可以再确认应用连接字符串是否使用了完整的服务器域名)。

6. 检查MySQL服务器的子资源配置

在专用终结点的配置中,确认目标子资源选择的是mysqlServer(MySQL服务器的默认子资源),如果选错了子资源,也会导致无法建立有效连接。

内容的提问来源于stack exchange,提问作者Chris Pateman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 09:39:06