首页 > 解决方案 > 如何从 DataGrip 连接到 Oracle Cloud 中的 Oracle 21c

问题描述

我在 Oracle Cloud 中创建了一个自治事务处理数据库。周围没有现成的 JDBC 链接,但有“钱包”。有实例钱包和区域钱包。甲骨文说其中之一,最好是实例钱包,应该用于连接到这个数据库实例。

钱包是一个 ZIP 文件,里面有十几个文件。我已经下载了一个实例钱包并解压缩了它。现在我正在尝试将 DataGrip 连接到此实例。

DataGrip 中有一个TNS连接类型,tnsnames.ora钱包里有一个著名的,所以我想我应该使用它们。TNS连接类型接受一个TNSADMIN参数,我猜它是那个钱包的目录。tnsnames.ora从钱包中列出了一些服务名称,AFAIU 它们的优先级不同,例如一个用于低优先级查询,另一个用于中等优先级,一个用于最高优先级问题。我对中等优先级没问题,所以我这样做了:

没运气

如您所见,我收到一个错误:

[08006][17002] IO Error: The Network Adapter could not establish the connection
SSO KeyStore not available.

我用谷歌搜索过,但这个话题似乎很复杂。Oracle有很多连接过程中涉及到证书的连接参数,我真的很新,我只想连接到这个实例。为什么要这么复杂?我可以直接在 DataGrip 中使用这个钱包吗?

标签: oracledatagriporacle-cloud-infrastructureoracle21c

解决方案


看来我做的一切都正确,唯一的问题实际上是驱动程序版本。

截至今天,2021 年 2 月 2 日,DataGrip 中最新可用的 Oracle 驱动程序版本是 19.8.0.0:

最新可用的 Oracle 驱动程序版本

为了解决这个问题,我刚刚在 DataGrip 中创建了另一个 Oracle 驱动程序并手动提供了最新的 JAR:

  1. 转到Oracle Database 21c (21.1) JDBC 驱动程序和 UCP 下载
  2. 下载与您的 Java 版本相对应的压缩 JDBC 驱动程序和配套 JAR:8 或 11。或者只下载 Java 8 的版本 ( ojdbc8-full.tar.gz)。它应该适用于任何现代 Java。
  3. 在 DataGrip 的驱动程序目录中为您的驱动程序创建新的子目录。类似于~/.config/JetBrains/DataGrip2020.3/jdbc-drivers/Oracle/21.1Linix 的东西。
  4. 在该目录中解压缩驱动程序。
  5. 在 DataGrip 中配置新驱动程序。只需克隆现有的 Oracle 驱动程序并将“驱动程序文件”替换为 ZIP 中的驱动程序文件。 甲骨文 21 驱动程序
  6. 使用此新驱动程序连接到实例: 成功!

推荐阅读