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

AWS Lightsail实例连接外部MySQL服务器失败求助

AWS Lightsail实例连接外部MySQL服务器权限错误解决办法

问题本质

别误解错误信息——不是你的Lightsail实例把外部IP解析成了本地地址,而是你要连接的外部MySQL服务器,把你的Lightsail实例公网IP反向解析成了那个EC2域名,然后检查该用户是否允许从这个域名对应的地址登录,结果权限不匹配才报错。

具体解决步骤

  • 检查并授权外部MySQL用户
    登录外部MySQL服务器,先查一下当前用户的授权范围:

    SELECT user, host FROM mysql.user WHERE user = 'user_name';
    

    如果结果里没有ec2-xx-xx-xx-xx.us-east-2.compute.amazonaws.com或者你的Lightsail实例公网IP,就给用户加权限:

    -- 用反向解析的域名授权
    GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'ec2-xx-xx-xx-xx.us-east-2.compute.amazonaws.com' IDENTIFIED BY '你的密码';
    -- 或者直接用实例公网IP授权,更稳妥
    GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'你的Lightsail实例公网IP' IDENTIFIED BY '你的密码';
    

    加完权限后一定要刷新:

    FLUSH PRIVILEGES;
    
  • 绕过反向解析的快捷方案(谨慎用)
    要是嫌反向解析麻烦,可以创建允许从任意地址连接的用户,但生产环境别这么干,风险高:

    GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    
  • 先确认网络通不通
    先在Lightsail实例里ping外部MySQL的IP,看看能不能通;再用telnet xx.xx.xx.xx 3306测3306端口是否开放,确保外部MySQL的安全组/防火墙已经放行了你的Lightsail实例IP。

  • 关于skip_name_resolve的误区
    你改本地my.cnf没用,这个参数是给外部MySQL服务器用的——在外部服务器的配置里加skip_name_resolve,重启MySQL后,它就会直接用IP验证用户,不再做反向解析了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:35:44