【问题标题】:IO Error: The Network Adapter could not establish the connectionIO 错误:网络适配器无法建立连接
【发布时间】:2012-09-16 11:11:59
【问题描述】:

我是 Oracle 新手,正在尝试使用 Java 运行一个简单的示例代码,但在执行代码时出现此错误。我可以通过 CMD 启动侦听器,也可以运行 SQL Plus .谁能帮我一把,告诉我我可能做错了什么?

更新: 我正在使用 JDBC。

数据库是本地的,我确实可以使用它,但它就在今天停止工作。我不确定为什么。你介意给我一些程序吗,因为我知道的不多。

【问题讨论】:

  • 您需要发布产生此错误的代码
  • @EJP 是的,先生!更新帖子以反映这一点!

标签: java windows-7 jdbc oracle11g bootcamp


【解决方案1】:

要么:

  1. 数据库未运行
  2. 您输入的网址有误
  3. 有防火墙挡道。

(这个奇怪的错误消息是由 Oracle 的 JDBC 驱动程序在无法连接到数据库服务器时产生的。“网络适配器”似乎是指他们代码的某些组件,这不是很有用。真正的网络适配器( NIC)根本不建立连接:TCP协议栈会这样做。如果他们只是让原始的ConnectException被抛出,或者至少使用它的错误消息并让它出现在堆栈跟踪。)

【讨论】:

  • 我如何确保我的数据库正在运行?
  • @Strawberry 通过供应商为此目的提供的实用程序。
【解决方案2】:

我遇到了同样的问题,这就是我解决它的方法。 我的连接使用了错误的端口。

private final String DB_URL  = "jdbc:oracle:thin:@localhost:1521:orcll"; // 1521 my wrong port
  • 去你的本地主机
  • (我的本地主机地址):https://localhost:1158/em

  • 登录

    • 用户名
    • 密码
    • 连接为 --> 正常
  • 在“常规”下方点击 LISTENER_localhost

  • 看看你的端口号
    • 网络地址 (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1522)) 连接到端口 1522
  • 编辑你的连接 将端口 1521 更改为 1522。

    • 完成

【讨论】:

  • 我也遇到了同样的问题,因为我忘记了@
  • +1。我有同样的问题。我忘记了@。示例:JDBC_STRING="jdbc:oracle:thin:@aravindr-dra0r0.cyrbi4kznovv.us-west-1.rds.amazonaws.com:8195:DRA0R0"
【解决方案3】:

您可能还想检查 listener.ora 文件是否与您尝试连接到数据库的方式相匹配。如果您通过 localhost 引用进行连接,并且您的 listener.ora 文件从以下位置更改:

HOST = localhost

HOST = 192.168.XX.XX

那么这可能会导致您遇到的错误,除非您更新主机文件以适应这种情况。可能有人进行了此更改以允许从其他计算机远程连接到数据库。

【讨论】:

    【解决方案4】:

    要解决网络适配器错误,我必须删除计算机名称中的 -

    【讨论】:

      【解决方案5】:

      就我而言,我需要指定viahostviauser。如果你在一个复杂的系统中,值得一试。 :)

      【讨论】:

        【解决方案6】:

        对我来说,没有安装基本的 oracle。请确保您已安装 oracle,然后尝试检查主机和端口。

        【讨论】:

          【解决方案7】:

          我发现在我的情况下,我的数据库与我尝试访问数据库的子网位于不同的子网中。

          【讨论】:

            【解决方案8】:

            很可能你的监听器配置错误,你在连接字符串中指定的主机名必须与监听器中的相同。

            首先检查防火墙和网络相关问题。

            检查 Oracle 侦听器服务是否可用并正在运行。如果没有,您可以使用 Oracle Net Configuration Assistant 工具添加和注册新的侦听器。

            如果以上步骤都ok,那么你需要适当配置Oracle Listener。您可以使用 Oracle Net Manager 工具或手动编辑“%ORACLE_HOME%\network\admin\listener.ora”文件。

            有两个选项需要仔细考虑: 与侦听器关联的侦听位置 – 侦听位置中的主机名 (IP) 和端口必须与连接字符串中使用的完全匹配。

            例如,如果您使用 192.168.74.139 作为目标主机名,则必须有使用相同 IP 地址注册的侦听位置。

            还要确保您使用与侦听器关联的数据库服务中指示的相同 SID。

            https://adhoctuts.com/fix-oracle-io-error-the-network-adapter-could-not-establish-the-connection-error/

            【讨论】:

            • 你好。虽然发布一些链接是可以的,但我们更喜欢发布一些解释和一些来源摘录,请阅读How to Answer 并改进您的答案。
            【解决方案9】:

            当我在 windows-properties 中重命名 pc 时出现此错误。电脑名称必须在listener.ora-文件中更新

            【讨论】:

              【解决方案10】:

              我也遇到了这个问题。我正在使用 jdbc 连接字符串连接到数据库。主机名在字符串中配置不正确。我正在使用 Mac,并且在 Windows 机器上使用相同的字符串没有问题。在我的连接字符串中,我必须确保在主机名末尾附加了“organizationname.com”的完整网址。

              希望这会有所帮助。

              【讨论】:

                【解决方案11】:

                尝试重新创建连接。在我的情况下,jdbc 连接之一无缘无故停止工作。从控制台 sqlplus 工作正常。 我花了 2 个小时才意识到,如果我创建相同的连接 - 它可以工作。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2015-06-15
                  • 2022-01-13
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多