Python连接GCP PostgreSQL超时求助(psql可正常连接)
解决Psycopg2连接GCP PostgreSQL超时问题
以下是针对你遇到的psql能正常连接但Python的psycopg2连接超时问题的排查和解决步骤:
- 核对Python连接参数:确保代码中的主机地址、端口、数据库名、用户名、密码完全正确,尤其注意端口是否为5432,有没有被环境变量或其他配置覆盖。
- 重装psycopg2依赖:VPS上的Python环境可能存在依赖缺失,执行以下命令重装:
pip3 uninstall psycopg2 psycopg2-binary && pip3 install psycopg2-binary - 延长连接超时时间:在
psycopg2.connect()中添加connect_timeout=30参数,避免因默认超时过短导致连接失败。 - 开启SSL连接:GCP PostgreSQL默认可能要求SSL连接,psql会自动适配,但Python代码需显式指定,示例代码:
import psycopg2 conn = psycopg2.connect( host="35.199.90.49", port=5432, dbname="你的数据库名", user="你的用户名", password="你的密码", sslmode='require' ) - 检查SELinux限制:关闭VPS防火墙后,SELinux可能仍在拦截连接,临时关闭测试:
若恢复连接,需修改SELinux规则允许5432端口的出站连接。sudo setenforce 0 - 验证端口连通性:用nc命令确认VPS到GCP端口的连通性,排除网络隐性问题:
nc -zv 35.199.90.49 5432
内容的提问来源于stack exchange,提问作者Gabriel Celestino
相关产品推荐
相关产品推荐

