【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error

应用,服务,连接 ,MySQL · 浏览次数 : 25

小编点评

**问题描述:** App Service 上部署的 Java 应用连接与 Azure 数据库 MySQL 失败,错误信息为: ``` Create connection error, url: jdbc:mysql://....................... communications link failure. ``` **问题的解决方法:** 1. **检查网络连通性:** - 在 App Service 的 Kudu 页面中使用 `tcpping 3306` 端口连接到 MySQL 数据库,如果无法连接,则网络连通性问题。 2. **检查防火墙规则:** - 在 MySQL 的防火墙页面中检查允许的 IP 地址是否包含 App Service 的 IP 地址。 - 如果没有开启 SSL 连接,则无法通过端口 3306 连接到 MySQL 数据库。 3. **检查 SSL设置:** - 如果使用 SSL 连接,则需要下载证书 (https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem),并在 Java 代码中显式使用 SSL 证书。 **总结:** 解决连接失败问题需要检查以下几个因素: - 网络连通性 - MySQL 的防火墙规则 - SSL设置

正文

问题描述

App Service上部署的Java应用,连接 Azure Database for MySQL 失败。错误信息:Create connection error, url: jdbc:mysql://....................... communications link failure.

 

问题解答

应用的错误信息提示为:与MySQL数据库建立连接失败。

所以需要考虑如下几种情况:

1) App Service与MySQL数据库之间的网络连通性

2) MySQL的防火墙是否允许了App Service的IP地址访问

3) 是否启用了SSL设置,因为MySQL SSL连接,需要下载证书(https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem)并在Java代码中显式使用

 

对于第一种情况,可以在App Service的Kudu页面上,使用 tcpping 3306 端口来验证:

tcpping <your service name>.mysql.database.chinacloudapi.cn:3306

 

对于第二种情况,在App Service的属性页面中获取到出口IP地址,然后配置在MySQL的防火墙页面即可。

对于第三种情况,参考MySQL的文档,下载证书,修改代码,参考文档:https://docs.azure.cn/zh-cn/mysql/single-server/how-to-configure-ssl

 

 

 

 

【完】

与【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error 相似的内容:

【Azure 应用服务】应用服务连接 Azure MySQL 一直失败,报错 Create connection error

问题描述 App Service上部署的Java应用,连接 Azure Database for MySQL 失败。错误信息:Create connection error, url: jdbc:mysql://....................... communications link

【Azure 应用服务】Function App / App Service 连接 Blob 报错

问题描述 因 Blob 启用了防火墙功能,但是当把App Service 或 Function App的出站IP地址都加入到Blob的白名单中,为什么访问还是403错误呢? 问题解答 Azure Storage的IP网络规则不适用于同一数据中心的客户端。 存储帐户部署在同一区域中的服务使用专用的 A

【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available

问题描述 在App Service中启用Identity后,使用系统自动生成 Identity。 使用如下代码连接数据库 SQL Server: SQLServerDataSource dataSource = new SQLServerDataSource(); dataSource.setSer

【Azure Redis 缓存】Azure Redis 遇见的连接不上问题和数据丢失的情况解答

问题描述 PHP应用再连接Azure Redis服务时,出现Connection Timed out。当通过升级提高Azure Redis的性能时候,发现之前的数据丢失了。 问题解答 当Redis服务出现Timeout的情况时,可以从Redis服务的指标(Metrics)开始查看,如果出现负载(Se

【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection refused)的排查步骤

问题描述 在PHP应用中,连接Redis的方法报错 RedisException(code: 0): Connection refused at /data/Redis/Connectors/PhpRedisConnector.php production.ERROR: Connection ref

【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题

问题描述 在Java应用中,使用 Lettuce 作为客户端SDK与Azure Redis 服务连接,当遇见连接断开后,长达15分钟才会重连。导致应用在长达15分的时间,持续报错Timeout 问题解答 这是 Lettuce 目前的一个未解决的已知问题,可以查看此 github issue来了解这个

【Azure Redis 缓存】Redis 连接失败

问题描述 Azure Redis 出现连接失败,过一会儿后,又能自动恢复。 问题解答 其实,因为Azure Redis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的计划内的维护升级行为,一般客户端都有重试机制,是不会影响应用。 故障转移发生的情况有: 系统更新,例如

【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)

问题描述 使用Azure Kubernetes服务(AKS),可以通过kubectl连接 pod 中查看日志,但是如何来查看节点的系统日志呢?如是否有ubuntu系统升级的记录? 问题解答 是的,可以进入AKS的节点查看系统文件,如日志文件(/var/log) 或者由应用生产的其他日志。 具体的操作

微软面向企业的Private ChatGPT 参考应用 Chat Copilot

这两天你可能看过这篇文章:微软面向企业的Private ChatGPT 开源!超详细安装流程反馈![1], 这篇文章顶多就是一个Azure OpenAI 服务的简单Demo, 就连插件机制都没有,这也是促使我写这篇文章的因素之一。 微软在Build 大会上宣布了Copilot Stack,Copil

【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)

azure.core.exceptions.ClientAuthenticationError: Authentication failed: AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is