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

亚马逊EC2远程访问MySQL遭1045错误拒绝,求助排查遗漏配置

解决MySQL 5.5.58远程连接1045 Access Denied问题的遗漏排查点

你已经完成了基础的排查步骤,安全组开放、端口监听、用户配置这些都没问题,咱们来梳理几个容易被忽略的细节:

  • 权限未手动刷新:MySQL 5.5这类老版本不会自动同步权限变更,如果你创建/修改用户后没执行刷新命令,权限其实还没生效:

    FLUSH PRIVILEGES;
    
  • 密码输入或格式问题:别小看这个,很多时候是密码输错了,或者密码里的特殊字符(比如@、#)在终端/客户端被转义导致认证失败。可以先重置一个简单密码测试:

    SET PASSWORD FOR 'yj'@'%' = PASSWORD('your-new-simple-password');
    FLUSH PRIVILEGES;
    
  • EC2本地防火墙拦截:AWS安全组是外部防护,但EC2实例本身可能开启了iptables这类本地防火墙,拦截了3306端口。先检查规则:

    iptables -L -n | grep 3306
    

    如果没有允许规则,添加并保存:

    iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    service iptables save
    service iptables restart
    
  • 用户权限授予不完整:你确认了mysql.user表存在该用户,但可能只创建了用户,没给远程连接所需的权限?正确的授权流程应该是:

    CREATE USER 'yj'@'%' IDENTIFIED BY 'your-password';
    GRANT ALL PRIVILEGES ON *.* TO 'yj'@'%'; -- 可根据实际需求调整权限范围,不一定需要ALL
    FLUSH PRIVILEGES;
    

    只创建用户不授权的话,即便用户存在也无法正常连接。

  • MySQL服务未重启:如果你之前修改过my.cnf(比如删除了bind-address),必须重启服务才能让配置生效:

    service mysqld restart
    
  • 缺少skip-name-resolve配置:MySQL默认会尝试反向解析客户端IP,如果你的客户端IP无法被解析,可能导致连接失败。可以在my.cnf的[mysqld]段添加:

    skip-name-resolve
    

    然后重启MySQL,这个配置会跳过IP反向解析,避免这类问题。

你可以逐个排查这些点,大概率能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:11:28