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

Jdbi3连接谷歌云托管PostgreSQL异常及SSL禁用方案咨询

问题根因说明

你遇到的异常和Jdbi3本身、PostgreSQL连接层面的SSL配置无关,堆栈最底层的报错已经明确根因:缺少谷歌云应用默认凭据。你使用的cloud-sql-jdbc-socket-factory组件需要先完成谷歌云身份验证,才能调用Cloud SQL API获取实例连接授权,和你是否启用PostgreSQL SSL连接没有关联,所以追加sslmode=disable参数无法解决该问题。

可选解决方案

方案1:直接通过公网IP连接(无需额外依赖,可完全禁用SSL)

该方案不需要使用cloud-sql-jdbc-socket-factory组件,适合开发测试场景:

  • 登录谷歌云SQL控制台,进入目标实例的「连接」配置页,开启公网访问,将你运行代码的机器的公网IP添加到实例的授权IP白名单中
  • 进入实例的「SSL配置」页,关闭「仅允许SSL连接」开关
  • 直接使用标准PostgreSQL JDBC URL创建连接即可,Jdbi3代码无需修改,URL示例:
    jdbc:postgresql://<Cloud SQL实例公网IP>:5432/<数据库名>?sslmode=disable&user=<数据库用户名>&password=<数据库密码>

方案2:保留cloud-sql-jdbc-socket-factory组件的配置方法

如果不想配置公网IP白名单,需要先补充谷歌云身份凭据配置:

  • 在谷歌云IAM控制台创建服务账号,授予该账号「Cloud SQL客户端」权限,导出服务账号的JSON密钥文件到本地
  • 在运行代码的环境中配置环境变量GOOGLE_APPLICATION_CREDENTIALS,值为上述JSON密钥文件的绝对路径
  • 不需要调整JDBC URL的SSL相关参数,组件内部的SSL通信和你提到的IAM认证SSL无关,配置完凭据后即可正常连接。

方案3:保留Cloud SQL代理的使用方式

如果你的环境可以提前运行Cloud SQL代理,继续使用最开始的本地连接方式即可,不需要额外配置身份凭据和SSL参数,该方式默认已经完成谷歌云侧的身份验证。

内容的提问来源于stack exchange,提问作者Shi Tim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:01