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

Apache Superset无法连接Google Cloud SQL(PostgreSQL)求助

解决Apache Superset连接Google Cloud SQL PostgreSQL的端口关闭及连接失败问题

一、先排查网络连通性(端口关闭本质是网络不通)

在Superset所在的GCE虚拟机上执行端口测试,确认能否访问Cloud SQL的5432端口:

nc -zv <你的Cloud SQL实例IP> 5432
# 备选命令:telnet <你的Cloud SQL实例IP> 5432

如果返回Connection refused或超时,按以下步骤修复:

  • 检查Cloud SQL授权网络:进入Cloud SQL控制台→目标实例→「连接」标签→「授权网络」,将Superset所在GCE虚拟机的外部IP(公网连接场景)或内网IP(私有网络场景)添加到列表,保存后等待1-2分钟生效。
  • 私有网络场景:确认Cloud SQL已启用私有IP,且GCE虚拟机与Cloud SQL处于同一VPC,或VPC peering/私有服务访问配置正确,路由规则无冲突。
  • GCE防火墙检查:确保没有自定义出站规则限制TCP 5432端口的流量(默认GCE出站全开放,若有自定义规则需放行)。

二、检查Cloud SQL实例的连接配置

  • 确认实例状态:Cloud SQL控制台中目标实例状态为RUNNING,无停机、维护等异常。
  • 完善SSL连接配置:Cloud SQL PostgreSQL默认强制SSL,仅加sslmode=require可能不够,需指定CA证书:
    1. 从Cloud SQL控制台→目标实例→「连接」标签→「SSL」→下载服务器CA证书。
    2. 将证书上传到Superset虚拟机的可访问路径(例如/opt/superset/ssl/server-ca.pem)。
    3. 修改SQLAlchemy URI为:
      postgresql+psycopg2://<数据库用户名>:<密码>@<Cloud SQL IP>:5432/<目标数据库名>?sslmode=require&sslrootcert=/opt/superset/ssl/server-ca.pem
      
  • 验证数据库用户权限:确认使用的数据库用户拥有目标数据库的连接权限,可在Cloud SQL控制台「用户」页面重置密码后重试。

三、验证SQLAlchemy URI的正确性

  • 避免拼写错误:<数据库用户名>是Cloud SQL中创建的PostgreSQL本地用户(不是GCP账号),<目标数据库名>是实际存在的库(默认是postgres,自定义库需填写正确名称)。
  • 用IP而非实例名:必须直接填写Cloud SQL的公网/私有IP,不能用实例名称或域名。

四、检查Superset环境依赖

  • 确认psycopg2驱动已安装:Superset连接PostgreSQL需要该驱动,执行以下命令检查:
    pip list | grep psycopg2
    
    若无结果,安装预编译版本避免编译问题:
    pip install psycopg2-binary
    
    安装完成后重启Superset服务。

内容的提问来源于stack exchange,提问作者Vadym Urupa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:03:20