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

AWS Lambda无法连接EC2实例上的MySQL问题求助

排查Lambda连接EC2上MySQL的连接拒绝问题
  • 检查MySQL绑定地址:
    默认MySQL可能仅绑定127.0.0.1,仅允许本地访问。登录EC2上的MySQL,执行SHOW VARIABLES LIKE 'bind_address';,若结果为127.0.0.1,需修改my.cnf(或my.ini)中的bind_address为0.0.0.0,随后重启MySQL服务。

  • 确认Lambda的VPC配置细节:
    即便同属一个VPC和子网,也要确认Lambda确实关联了允许全流量的安全组;同时检查Lambda所在子网是否正常,EC2的私有IP是否属于该子网范围。

  • 验证跨实例端口连通性:
    在EC2本地执行nc -zv <EC2私有IP> 3306确认本地可连接;若有同子网的其他EC2实例,在该实例上执行同样命令,验证跨实例的3306端口连通性。

  • 核对MySQL用户授权范围:
    执行SELECT user, host FROM mysql.user;查看目标用户的授权主机,若为localhost或特定IP,需重新授权:

    GRANT ALL PRIVILEGES ON <目标数据库名>.* TO '<用户名>'@'%' IDENTIFIED BY '<密码>';
    FLUSH PRIVILEGES;
    
  • 检查连接代码参数:
    确保代码中<ec2 instance private ip address>已替换为正确的EC2私有IP,无空值或拼写错误;可明确指定端口参数避免默认值异常,修改后的代码示例:

    conn = pymysql.connect(
        host='<正确的EC2私有IP>',
        user='<用户名>',
        passwd='<密码>',
        db='<目标数据库名>',
        port=3306,
        connect_timeout=5
    )
    
  • 调整Lambda的超时与资源配置:
    将connect_timeout从2秒调整为5秒,同时确认Lambda的执行超时时间(默认3秒)足够覆盖连接耗时;适当提升Lambda的内存配置,避免资源不足影响网络操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:03:10