Julia通过DBInterface、MySQL包连接AWS RDS MySQL报错2002如何处理
报错(2002): Can't connect to MySQL server on 'xxx' (115)属于网络层面无法到达目标RDS实例的MySQL服务,和Julia依赖安装无关,除你已经完成的操作外,还需满足以下前置要求:
- 确认RDS实例引擎类型:你的实例命名前缀为pgdb,pg是PostgreSQL的常用缩写,若你创建的是PostgreSQL而非MySQL引擎的实例,使用MySQL连接包必然失败,需更换为PostgreSQL对应的Julia连接依赖。
- 确认RDS实例公网访问权限:进入AWS RDS控制台查看实例的「可公开访问」属性,若设置为「否」,公网环境下无法直接连接,可调整属性为「是」或通过同VPC内的服务器跳转连接。
- 确认安全组入站规则配置:RDS实例关联的安全组需添加入站规则,放行MySQL默认端口3306(若你自定义了端口需放行对应端口),源IP需设置为你当前设备的公网IP,测试阶段可临时设置为0.0.0.0/0,生产环境禁止使用该配置,会导致数据库暴露在公网面临攻击风险。
- 确认连接参数正确性:
- 若你修改了RDS MySQL的默认端口,需要在连接代码中新增
port参数传入自定义端口 - 确认传入的数据库名正确:RDS实例名不等于初始数据库名,创建实例时若未手动指定初始数据库,需先通过AWS控制台的查询编辑器登录后创建对应数据库,或连接时指定默认的
mysql库测试连通性 - 你的代码末尾多了冗余的
end关键字,待连通性问题解决后需删除该代码避免语法报错
- 若你修改了RDS MySQL的默认端口,需要在连接代码中新增
- 本地网络连通性预校验:在本地终端执行命令
telnet pgdb-1.cy6onqf2jyfs.us-east-2.rds.amazonaws.com 3306,若返回连接失败则说明是网络层面问题,需先排查上述RDS配置和本地网络防火墙规则,确认端口可通后再调试Julia代码。
内容的提问来源于stack exchange,提问作者neutrino
相关产品推荐
相关产品推荐

