如何解决连接AWS RDS MariaDB时出现的ERROR 2002 (HY000)错误?
错误代码115对应连接超时(ETIMEDOUT),除安全组外,按以下步骤排查修复:
确认RDS实例的公有可访问性
进入AWS控制台的RDS实例详情页,检查「Connectivity & security」标签下的「Publicly accessible」选项是否设为Yes。如果是No,即使安全组开放,公网也无法访问实例,需修改为Yes并等待实例状态更新为available。检查子网组的路由配置
若实例在VPC子网中,关联的路由表必须包含指向互联网网关(IGW)的路由条目(目标0.0.0.0/0或::/0,下一跳为IGW)。如果是私有子网且无NAT网关/实例,公网无法直接访问,需切换到公有子网或配置NAT。测试本地网络的出站连通性
在本地终端执行以下命令测试3306端口的连通性:telnet [AWS RDS endpoint] 3306或者
nc -zv [AWS RDS endpoint] 3306若连接失败,说明本地防火墙、公司网络策略或代理阻止了3306端口的出站流量,需联系网络管理员开放对应端口的出站权限。
验证RDS实例状态与端点正确性
确认RDS实例状态为available,未处于重启、维护或创建中。同时仔细核对输入的端点地址,确保无拼写错误(比如漏记区域后缀、大小写错误)。检查IPv6兼容性(若使用IPv6连接)
确保本地网络支持IPv6,且RDS实例所在VPC已启用IPv6,子网分配了IPv6 CIDR块。此外,安全组的IPv6入站规则需明确允许所有IPv6地址(::/0),避免规则配置遗漏。核查数据库参数组设置
查看RDS实例关联的参数组,确认bind-address参数未被设置为特定私有IP或127.0.0.1(RDS默认配置为允许所有地址访问,但如果被手动修改会导致连接失败)。若有修改,恢复默认值并重启实例生效。
内容的提问来源于stack exchange,提问作者Aman Rao

