【问题标题】:JDBC Connection String for Oracle not connectingOracle 的 JDBC 连接字符串未连接
【发布时间】:2021-05-02 00:22:10
【问题描述】:

以下是我使用 tnsnames.ora 对 Oracle SQL Developer 的连接设置

所需的jdbc字符串模式如下:

jdbc:oracle:thin@:1521:

我尝试了以下方法:

jdbc:oracle:thin:@ServerIP:1521:test2 , jdbc:oracle:thin:@ServerIP:1521:orcl.5bfzmyo25mfutjqfmvvj0cmrya.rx.internal.cloudapp.net:test2

但它没有连接。

【问题讨论】:

  • 尝试连接时出现什么错误?您是否从运行 SQL Developer 的同一台计算机连接?您的 SQL Developer 连接是到 localhostServerIP是本地机器的IP地址吗?
  • 收到的错误是:检查连接字符串、用户名或密码。我从不同的机器连接,是的服务器 IP 是安装 oracle 的服务器的 IP。
  • 好的。如果您从不同的计算机连接,则您的本地 tnanames.ora 文件和您的本地 SQL Developer 连接设置不可见。具体来说,那台机器不知道test2 引用了什么。您尝试从哪个应用程序连接?应该有更详细的错误堆栈。

标签: oracle jdbc oracle-sqldeveloper connection-string tnsnames


【解决方案1】:

假设

  • 您想使用 Oracle 瘦 JDBC 驱动程序
  • 数据库在ServerIP上运行
  • 数据库监听器正在端口 1521 上运行
  • 数据库的服务名是orcl.5bfzmyo25mfutjqfmvvj0cmrya.rx.internal.cloudapp.net

您的 connection string 应该是(有关其他语法选项,请参阅链接问题)

jdbc:oracle:thin:@//ServerIP:1521/orcl.5bfzmyo25mfutjqfmvvj0cmrya.rx.internal.cloudapp.net

您的应用服务器不知道您是如何配置本地 tnsnames.ora 文件或本地 SQL Developer 连接字符串的。因此,您不能引用test2(SQL Developer 连接的名称)或您在客户端计算机上创建的任何 tnsnames.ora 条目。

【讨论】:

  • 我正在尝试连接到 Qlik Data Catalog。也尝试了您的字符串。得到相同的错误。 core.error.code.TEST_CONNECTION_FAILED - 测试连接尝试失败,请检查连接字符串、用户名和密码。
  • @Amey - Oracle 客户端是否安装在您尝试连接的机器上?如果您的客户端确实没有调试连接的能力,那么您可能需要一些可以产生一些调试输出的东西。作为第一步,我会尝试使连接字符串尽可能相似。例如,使用您在 SQL Developer 连接字符串中指定的ServerIP,而不是使用localhost。如果您知道数据库的 SID 是什么,则可以在冒号分隔的 URL 中使用它。您可以尝试链接问题中的完整 TNS 别名语法。
  • 数据库的 SID 为 orcl ,TNS 网络别名为 ORCL 。我也尝试过以下连接字符串。首先选择 SID,然后选择 TNS 网络别名:jdbc:oracle:thin:@//ServerIP:1521:orcl & jdbc:oracle:thin:@//ServerIP:1521:ORCL .但它没有连接。这些字符串是否正确?
  • @Amey - 如果 IP 地址、端口和 SID 正确,它们会显示正确。如果 IP 地址、端口和服务名称正确,我发布的内容就是正确的。您拥有的信息不正确,或者有什么东西阻止了连接(即机器之间的防火墙)。