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

Python+Serverless连接AWS RDS MySQL遇1045访问拒绝问题排查

排查RDS访问拒绝错误的可能配置缺失

针对你遇到的本地运行(serverless offline)和部署到AWS后均无法连接RDS,报Access denied for user 'myuser'@'[IP]'的问题,结合提供的配置信息,以下是关键排查点:

1. MySQL用户权限未覆盖应用访问IP

Workbench能正常连接,说明myuser仅被授权从Workbench的IP访问,但应用的访问IP(本地公网IP152.241.43.211、Lambda的VPC私网IP172.31.x.x)不在授权列表中。

  • 解决步骤:
    登录MySQL执行授权命令,允许用户从任意IP访问(测试用,后续可限制特定IP段):
    GRANT ALL PRIVILEGES ON dev.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword';
    FLUSH PRIVILEGES;
    
    或针对Lambda的VPC网段授权:
    GRANT ALL PRIVILEGES ON dev.* TO 'myuser'@'172.31.0.0/16' IDENTIFIED BY 'mypassword';
    FLUSH PRIVILEGES;
    

2. RDS安全组未允许Lambda或本地IP的流量

从配置看,RDS绑定的安全组是sg-99999999,而Lambda使用的是sg-9187d5f4,两者未建立互通规则:

  • 解决步骤:
    1. 进入AWS控制台的EC2安全组页面,找到sg-99999999(RDS的安全组)。
    2. 添加入站规则:
      • 对于Lambda:选择MySQL/Aurora(3306端口),源地址设为Lambda的安全组IDsg-9187d5f4。
      • 对于本地运行:选择MySQL/Aurora,源地址设为你的公网IP152.241.43.211/32。

3. Lambda所在VPC子网无公网访问能力(针对部署后的场景)

RDS配置了PubliclyAccessible=true,但Lambda在VPC子网内,若子网未配置NAT网关,Lambda的私网IP无法访问公网RDS:

  • 解决步骤:
    要么为Lambda的子网配置NAT网关(需配合路由表指向NAT),要么改为让Lambda通过私网访问RDS:
    • 确认RDS的VPC与Lambda的VPC是同一个(从配置看都是vpc-f01de59b),直接在RDS安全组中允许Lambda所在VPC的CIDR172.31.0.0/16访问3306端口即可,无需公网访问。

4. MySQL 8.0认证插件兼容性问题

RDS使用MySQL 8.0.36,默认认证插件为caching_sha2_password,而pymysql对该插件的支持可能存在问题:

  • 解决步骤:
    方法一:修改用户的认证插件为mysql_native_password:
    ALTER USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY 'mypassword';
    FLUSH PRIVILEGES;
    
    方法二:在pymysql连接时指定认证插件:
    conn = pymysql.connect(
        host=db_endpoint,
        user=db_username,
        passwd=db_password,
        db=db_name,
        connect_timeout=5,
        cursorclass=pymysql.cursors.DictCursor,
        auth_plugin='mysql_native_password'
    )
    

5. 代码中数据库参数错误

虽然Workbench能连接,仍需确认代码中的参数是否完全匹配:

  • 检查db_password是否与Workbench使用的密码一致(注意大小写、特殊字符)。
  • 确认db_name='dev'是实际存在的数据库(Workbench连接时是否选择了dev库)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:03:10