【问题标题】:jdbc connection error with oracleoracle的jdbc连接错误
【发布时间】:2013-12-06 10:31:49
【问题描述】:

我无法使用 jdbc 连接到 oracle 数据库。

错误: 无法连接到 jdbc:oracle:thin:@localhost.localdomain:1521:orcl 的数据库(用户名:system,密码:tiger)

但是,我可以使用 sqlplus 命令连接它。

这是日志:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Version = Sun GlassFish Enterprise Server v2.1
Testing Database Connection ...
  -- Failure! java.sql.SQLException: Io exception: The Network Adapter could not establish the connection

这里是 listener.ora:

 LISTENER =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle

lsnrctl 的输出:

Listening Endpoints Summary...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=::1)(PORT=1521)))
 Services Summary...
 Service "orcl" has 1 instance(s).
 Instance "orcl", status READY, has 1 handler(s) for this service...
 Service "orclXDB" has 1 instance(s).
 Instance "orcl", status READY, has 1 handler(s) for this service...
 The command completed successfully

tnsnames.ora 的内容:

 ORCL =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

我使用的是 Oracle 11g、glassfish server 2.1、Redhat linux 企业版 6。

任何帮助将不胜感激。

--山姆

【问题讨论】:

  • 你能提供stacktrace吗??
  • Prabhakar:我已经通过编辑问题过去了日志内容。
  • 这里好像是你的主机名或端口号有误。你检查过用户是否有权限吗???你可以发布示例连接代码吗??
  • 这里是:sqlplus system/tiger@orcl SQL*Plus:2013 年 12 月 6 日星期五 17:16:44 发布 11.2.0.1.0 生产 版权所有 (c) 1982, 2009, Oracle。版权所有。连接到:Oracle 数据库 11g 企业版 11.2.0.1.0 - 64 位生产,带有分区、OLAP、数据挖掘和真正的应用程序测试选项 SQL>
  • 请在问题中输入新信息,而不是在 cmets 中,因为它很难阅读和跟踪。 orcl 在您的 tnsnames.ora 文件中是如何定义的?您用于 JDBC 的主机、端口和服务名称需要与它们匹配。您是否在运行 SQL*Plus 的同一台服务器上运行 Glassfish? (顺便说一句,您以system 的身份连接很奇怪,尤其是通过 JDBC;您不应该为自己的表等使用syssystem 模式,您应该创建一个新用户并改用它) .

标签: jdbc oracle11g ojdbc


【解决方案1】:

尝试将连接字符串中的localhost.localdomain 替换为localhost,即

jdbc:oracle:thin:@localhost:1521:orcl

如果我使用localhost.localdomain 作为地址,我也会收到The Network Adapter could not establish the connection 错误,如果我只使用localhost,它就会消失。

【讨论】:

    【解决方案2】:

    测试:

     telnet localhost 1521
    

    如果它不起作用

    设置iptables:

    https://exploringspatial.wordpress.com/2013/06/08/installing-oracle-sql-developer/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2014-04-08
      • 1970-01-01
      相关资源
      最近更新 更多