求助:无法通过DataGrip连接AWS CDK部署的RDS实例
子网路由表配置:
CDK部署的RDS若放在公有子网,需确认子网路由表包含指向互联网网关(IGW)的路由条目。控制台默认公有子网通常自动配置该路由,但自定义CDK子网可能未添加,导致实例无法通过公网暴露。安全组出站规则:
仅配置入站允许所有流量不够,RDS需要出站流量完成DNS解析、协议握手等操作。若安全组出站规则被限制(如仅允许内网流量),会导致客户端无法建立连接。需确保安全组允许目标为0.0.0.0/0的对应数据库端口(如3306、5432)TCP出站流量。数据库参数组配置:
部分数据库引擎(如MySQL)的参数组可能限制远程连接,比如bind-address设为127.0.0.1仅允许本地访问。CDK创建的自定义参数组若覆盖默认配置,需修改参数允许所有IP(0.0.0.0/0)连接。VPC私有DNS设置:
若启用RDS实例的VPC私有DNS,可能导致公网解析指向内网IP,客户端无法访问。需检查并关闭私有DNS选项,确保公网DNS能正确解析到实例的公网IP。CDK代码的子网选择逻辑:
确认CDK代码中是否明确指定公有子网。若误将RDS部署到私有子网,即使开启“公开可访问”,实例也无法获取公网IP。可通过vpc.selectSubnets({ subnetType: ec2.SubnetType.PUBLIC })明确指定子网类型。凭证正确性验证:
控制台创建的实例可能使用手动设置的简单凭证,而CDK部署通常通过Secrets Manager生成凭证,需确认DataGrip中使用的是Secrets Manager内的正确用户名和密码,而非自定义的错误值。实例状态检查:
确认AWS控制台中RDS实例状态为可用,且“公网可访问”显示为“是”。CDK部署后需等待实例完全初始化,处于“正在配置”状态的实例无法接受连接。
内容的提问来源于stack exchange,提问作者like9orphanz

