无法从本地机器连接AWS RDS PostgreSQL实例的问题求助
问题:无法连接开启公共访问的AWS RDS PostgreSQL实例
我创建了一个开启公共访问权限的AWS RDS PostgreSQL实例,但无法从本地机器连接。相关信息如下:
连接代码
try: conn = psycopg2.connect(dbname="elevate_permission", user="postgres", password="password123", host="database-1.ce2ilrafe9ry.ap-southeast-1.rds.amazonaws.com") print("Connected to DB") except psycopg2.OperationalError as e: logger.error(e) sys.exit()
辅助截图
错误提示
连接超时。服务器是否在该主机上运行并接受TCP/IP连接?
解决步骤
校验安全组入站规则
登录AWS控制台,进入目标RDS实例的「连接与安全性」页面,找到关联的安全组,编辑入站规则:添加一条TCP类型规则,端口设为PostgreSQL默认的5432(若自定义端口则填对应值),源地址设为本地机器的公网IP(或临时用0.0.0.0/0测试,测试完成后记得改回具体IP保障安全)。确认公共访问状态
在RDS实例详情页的「连接与安全性」标签下,确认「公共可访问性」选项为「是」,若为「否」则修改并重启实例。测试本地网络连通性
在本地终端执行telnet database-1.ce2ilrafe9ry.ap-southeast-1.rds.amazonaws.com 5432或nc -zv database-1.ce2ilrafe9ry.ap-southeast-1.rds.amazonaws.com 5432,检查端口是否能打通。如果不通,排查本地防火墙、企业内网代理是否限制了5432端口的出站访问。检查RDS实例状态
确保RDS实例处于「可用」状态,无创建、维护、故障等异常情况。核对连接参数
确认代码中的dbname、user、password与RDS实例配置完全匹配,若实例使用了非默认端口,需在psycopg2.connect中添加port=<端口号>参数。
内容的提问来源于stack exchange,提问作者tayron.vikranth
相关产品推荐
相关产品推荐

