You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Cloud Run连接Cloud SQL Postgres报错:为何使用3307端口?

Cloud Run连接Cloud SQL Postgres出现3307端口超时问题排查

问题现象

连接时抛出超时错误:

connection to Cloud SQL instance at 34.86.67.205:3307 failed: timed out after 10s

明明用的是Postgres连接,代码里指定了Unix套接字和Postgres默认的5432端口,却出现了属于MySQL的3307端口错误。

当前使用的连接代码

unix_socket_path = f"/cloudsql/{db_inst}"
logger.info(f"Using socket path {unix_socket_path}")
eng = sqlalchemy.create_engine (
    sqlalchemy.engine.url.URL.create(
    drivername="postgresql+pg8000",
    username=db_user,
    password=db_pass,
    database=db_name,
    query={"unix_sock": "{}/.s.PGSQL.5432".format(unix_socket_path)},
    ),
)    

原因分析与解决方法

  • 3307是Cloud SQL Auth代理默认的MySQL转发端口,出现这个端口说明你的连接请求被错误路由到了MySQL代理端口,而非Postgres的对应端口。
  • 常见触发原因及对应排查方向:
    1. Cloud Run服务的Cloud SQL关联错误:登录Google Cloud控制台,检查Cloud Run服务的「连接」配置,确认关联的是目标Postgres实例,没有误绑定MySQL实例。
    2. 实例ID配置错误:验证db_inst变量的实际值,必须是Postgres实例的完整连接名(格式为项目ID:区域:实例名),如果填成了MySQL实例的ID,代理会自动转发到3307端口。
    3. Auth代理异常:虽然代码指定了Unix套接字,但Cloud Run的Cloud SQL集成如果出现异常,可能会跳过套接字,错误尝试TCP端口连接。
    4. 驱动参数解析问题:pg8000驱动对unix_sock参数的解析可能存在异常,可尝试换成postgresql+psycopg2驱动测试。

内容的提问来源于stack exchange,提问作者Gregory Golberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:32:44