goland 未原生支持 amazon redshift 数据源类型,因其归类为兼容 postgresql 的第三方数据库,需手动配置 postgresql 驱动及完整 jdbc url(含 ssl=true&sslmode=require、正确端口5439和 .redshift.amazonaws.com 后缀),且不支持 iam 直连认证。

GoLand 无法直接配置 Amazon Redshift 数据源——因为 JetBrains 官方尚未为 GoLand 提供原生的 Amazon Redshift 数据源类型支持。 这不是你配错了,而是当前(2026年8月)GoLand 的数据库功能仅内置了 PostgreSQL、MySQL、Oracle 等常见驱动,Redshift 虽然兼容 PostgreSQL 协议,但默认不被识别为可选数据源类别。
为什么 GoLand 没有 Amazon Redshift 选项
GoLand 的数据库工具窗口(View → Tool Windows → Database)中,“新建数据源”菜单下确实没有 Amazon Redshift 条目。这不是遗漏,而是 JetBrains 将 Redshift 归类为“兼容 PostgreSQL 的第三方数据库”,需手动指定驱动与连接参数。RubyMine 和 DataGrip 支持 Redshift 作为独立选项,但 GoLand 目前未同步该能力。
- GoLand 的数据库功能基于 IntelliJ 平台,但数据源类型支持由各 IDE 单独维护;Redshift 驱动未被纳入 GoLand 默认启用列表
- 即使你看到 GoLand 文档里提到“选择 Amazon Redshift”,那通常是误引自 DataGrip 或 RubyMine 的说明页
- 强行复制 RubyMine 的 Redshift 驱动配置到 GoLand 可能失败:驱动类名、认证逻辑或 UI 绑定可能不一致
用 PostgreSQL 驱动连 Redshift 是可行的,但要注意三点
Amazon Redshift 基于 PostgreSQL 8.0.2 协议,因此可用标准 postgresql-42.6.0.jar(或更新版)驱动连接,但必须手动配置关键参数,否则会报错或功能受限。
-
主机地址必须完整:填
my-cluster.123456789012.us-east-1.redshift.amazonaws.com,不能省略.redshift.amazonaws.com后缀,否则 DNS 解析失败 -
端口必须显式指定:Redshift 默认端口是
5439,不是 PostgreSQL 的5432;GoLand 不会自动 fallback,留空或填错将超时 -
JDBC URL 需加参数:在 Advanced 选项卡中追加
ssl=true&sslmode=require&ApplicationName=GoLand,否则连接可能被集群拒绝(尤其启用了强制 SSL 的集群)
测试连接失败时优先检查这四个地方
常见报错如 Connection refused、FATAL: database "mydb" does not exist 或 SSL error: PKIX path building failed,基本都源于以下配置偏差:
- 数据库名填在了
Database字段,但 Redshift 实际要求的是database-name(URL 路径末尾),GoLand 的 UI 字段映射不严格,建议直接在Options → URL中写完整 JDBC 地址:jdbc:postgresql://my-cluster.123456789012.us-east-1.redshift.amazonaws.com:5439/mydb?ssl=true&sslmode=require - 用户字段填了 IAM 角色名(如
IAMR:AppBuilderDataAccessRole),但 GoLand 的 JDBC 连接不支持 IAM 认证直连——必须用数据库用户名(如awsuser)+ 密码,IAM 认证需走 AWS CLI 临时凭证代理,GoLand 无此集成 - 驱动版本太旧(如
postgresql-42.2.0.jar):Redshift 6.0+ 集群要求驱动支持sslmode=require显式声明,老版本会静默忽略导致 SSL 握手失败 - 本地网络限制:私有子网中的 Redshift 集群无法被你的开发机直连,此时必须通过 EC2 跳板机建 SSH 隧道——GoLand 支持 SSH Config 文件配置,但需提前在
~/.ssh/config中定义好 Host 别名和 ProxyJump
最易被忽略的一点:GoLand 的数据库工具窗口不会自动刷新 Redshift 的系统表(如 pg_table_def)或显示 SVV_* 视图,即使连接成功。这不是权限问题,而是其元数据探测逻辑针对标准 PostgreSQL 设计,对 Redshift 扩展对象兼容性有限——查 schema 请手动执行 SELECT * FROM pg_tables WHERE schemaname = 'public';,别依赖左侧树形导航自动展开。











