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

解决Azure上Bitnami MySQL远程连接失败(Error 2003)问题

解决Azure上Bitnami MySQL远程连接失败的思路

你已经做了不少基础排查工作,咱们从Azure环境和Bitnami特有的配置细节入手,一步步定位问题:

  • 检查Azure网络安全组(NSG)入站规则
    这是Azure VM远程访问最容易忽略的点:登录Azure门户,找到你的MySQL VM,进入「网络」选项卡,查看入站端口规则是否添加了允许TCP 3306端口的规则。建议先设置源为你的远程主机IP(更安全),测试通过后再按需调整。如果没有这条规则,远程请求会直接被Azure拦截。

  • 确保MySQL配置修改生效
    你修改了my.cnf中的bind-address为0.0.0.0后,必须用Bitnami专用的脚本重启MySQL服务,而不是普通的systemd命令:

    sudo /opt/bitnami/ctlscript.sh restart mysql
    

    重启后执行以下命令确认监听地址:

    netstat -tlnp | grep 3306
    

    输出如果显示0.0.0.0:3306才说明配置生效,要是还是127.0.0.1,那说明配置没被正确加载(可能my.cnf路径不对,Bitnami的MySQL有时会读取/opt/bitnami/mysql/conf/my.cnf,你可以检查下实际加载的配置文件路径)。

  • 验证远程授权权限是否生效
    你执行了授权命令后,别忘了执行FLUSH PRIVILEGES;让权限立即生效。另外,在本地登录MySQL后,执行以下命令确认root用户的主机权限:

    SELECT user, host FROM mysql.user;
    

    要确保存在root@'%'这条记录,并且密码和你远程连接时输入的完全一致(注意大小写和特殊字符)。Bitnami默认的MySQL可能对密码复杂度有要求,如果你之前的密码不符合规则,授权可能没成功。

  • 检查VM本地防火墙
    Bitnami的Ubuntu/Debian VM默认启用了ufw防火墙,即使Azure NSG开了端口,本地防火墙也可能拦截请求。执行以下命令查看状态:

    sudo ufw status
    

    如果没有允许3306的规则,添加并重新加载:

    sudo ufw allow 3306/tcp
    sudo ufw reload
    
  • 测试网络连通性
    在远程主机上用工具测试端口是否可达:

    # 用telnet测试
    telnet xxx.xxx.xx.xx 3306
    # 或者用nc(更直观)
    nc -zv xxx.xxx.xx.xx 3306
    

    如果显示连接失败,说明问题在网络层面(NSG或本地防火墙);如果能连通,再回到MySQL的权限和配置问题。

  • 移除skip-grant-tables配置
    你之前添加的skip-grant-tables会跳过MySQL的权限验证,可能导致后续的授权设置不生效。建议先移除这个配置,重启MySQL服务,再用正常的授权用户尝试远程连接。

  • 查看MySQL错误日志
    错误日志能提供最直接的线索,Bitnami的MySQL错误日志路径一般是:

    /opt/bitnami/mysql/data/$(hostname).err
    

    查看日志中是否有类似Access denied for user 'root'@'xxx.xxx.xx.xx'或者Connection refused的信息,根据日志提示进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:58:21