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

Ubuntu 20.04连接Azure Database for MySQL-Server失败问题咨询

问题原因及排查方案

核心触发原因

  • 最常见的原因是MySQL 8.0.27客户端的默认连接策略与Azure MySQL 8.0.15服务端配置不兼容:MySQL 8.0.27及以上版本默认将ssl-mode参数设为REQUIRED,要求连接必须走SSL加密且证书校验合法,而Azure Database for MySQL 8.0.15默认需要使用官方提供的CA证书才能完成SSL校验,没有指定证书时就会在握手阶段无响应卡住。
  • Mac上的5.7版本MySQL客户端默认ssl-mode为PREFERRED,SSL校验失败时会自动降级为非SSL连接,因此可以正常连通。
  • 其他可能的触发原因:
    • Ubuntu服务器公网IP发生变更,没有添加到Azure MySQL的访问白名单中
    • MySQL 8.0.27客户端默认优先使用caching_sha2_password认证插件,而Azure MySQL 8.0.15服务端的账号仍使用旧版mysql_native_password插件,认证握手失败
    • Ubuntu服务器本地安全组/ufw防火墙新增了3306端口的出站限制

排查修复步骤

  1. 首先测试SSL策略问题,执行命令添加关闭SSL的参数尝试连接:
mysql -uuser -ppassword -hmyserver.mysql.database.azure.com --ssl-mode=DISABLED

如果可以正常连接,说明是SSL配置导致的问题:

建议优先选择合法SSL连接方案:从Azure MySQL控制台下载官方CA根证书,连接时指定证书路径即可:

mysql -uuser -ppassword -hmyserver.mysql.database.azure.com --ssl-mode=REQUIRED --ssl-ca=/本地路径/DigiCertGlobalRootCA.crt.pem
  1. 如果关闭SSL后仍无响应,测试指定旧版认证插件连接:
mysql -uuser -ppassword -hmyserver.mysql.database.azure.com --default-auth=mysql_native_password
  1. 若上述操作都无效,先验证网络连通性,执行端口检测命令:
nc -zv myserver.mysql.database.azure.com 3306

如果返回端口不可达,检查Azure MySQL的访问白名单是否包含Ubuntu服务器当前公网IP,同时检查Ubuntu本地防火墙是否放开3306端口出站权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:06