【问题标题】:How to connect to Oracle 21c in Oracle Cloud from DataGrip如何从 DataGrip 连接到 Oracle Cloud 中的 Oracle 21c
【发布时间】:2021-05-07 02:17:11
【问题描述】:

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

钱包是一个 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 中使用这个钱包吗?

【问题讨论】:

标签: oracle datagrip oracle-cloud-infrastructure oracle21c


【解决方案1】:

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

截至今天,2021-02-02,DataGrip 中最新可用的 Oracle 驱动程序版本是 19.8.0.0:

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

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

【讨论】:

    【解决方案2】:

    DataGrip 2021.1 为 Oracle JDBC Driver 21.1.0.0 提供了所有必需的 jar 文件。

    另外,请阅读 DataGrip article 关于使用钱包连接到 Oracle。

    【讨论】:

      猜你喜欢
      • 2017-01-16
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多