oracle - 如何从 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 中使用这个钱包吗?
解决方案
看来我做的一切都正确,唯一的问题实际上是驱动程序版本。
截至今天,2021 年 2 月 2 日,DataGrip 中最新可用的 Oracle 驱动程序版本是 19.8.0.0:
为了解决这个问题,我刚刚在 DataGrip 中创建了另一个 Oracle 驱动程序并手动提供了最新的 JAR:
- 转到Oracle Database 21c (21.1) JDBC 驱动程序和 UCP 下载
- 下载与您的 Java 版本相对应的压缩 JDBC 驱动程序和配套 JAR:8 或 11。或者只下载 Java 8 的版本 (
ojdbc8-full.tar.gz
)。它应该适用于任何现代 Java。 - 在 DataGrip 的驱动程序目录中为您的驱动程序创建新的子目录。类似于
~/.config/JetBrains/DataGrip2020.3/jdbc-drivers/Oracle/21.1
Linix 的东西。 - 在该目录中解压缩驱动程序。
- 在 DataGrip 中配置新驱动程序。只需克隆现有的 Oracle 驱动程序并将“驱动程序文件”替换为 ZIP 中的驱动程序文件。
- 使用此新驱动程序连接到实例:
推荐阅读
- ray - 在 OptiX 7 中计算命中点的表面法线
- python-3.x - pandas read_csv() 错误,即 FileNotFoundError: [Errno 2] 没有这样的文件或目录:'19.csv'
- google-chrome - 尽管需要许可,但 Chrome 扩展程序被拒绝
- amazon-web-services - 具有限制访问 s3 存储桶中的文件夹的策略的角色被忽略
- pine-script - PineScript / 转换为 V4
- python - 如何在列表中使用“\\”字符进行拆分
- r - 如何从r中的出生日期和时间戳计算年龄?
- json - F# 和 Web API Json 用于在 DataFrame 中进行分析
- python - 如何确定系统是否在 Python 中忙?
- next.js - 如何保护 Next.js next-auth 中的路由?