IO 错误:网络适配器无法建立连接

Posted

技术标签:

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

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

更新: 我正在使用 JDBC。

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

【问题讨论】:

您需要发布产生此错误的代码 @EJP 是的,先生!更新帖子以反映这一点! 【参考方案1】:

要么:

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

(这个奇怪的错误消息是由 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 个小时才意识到,如果我创建相同的连接 - 它可以工作。

【讨论】:

以上是关于IO 错误:网络适配器无法建立连接的主要内容,如果未能解决你的问题,请参考以下文章

我在我的 oracle 数据库中收到错误“网络适配器无法建立连接”

网络适​​配器无法建立连接 - Oracle 11g

网络适​​配器无法建立连接 - Oracle 11g

IOException:网络适配器无法建立连接[重复]

java.sql.SQLRecoverableException:网络适配器无法建立连接

Oracle 11g DBCP 网络适配器无法建立连接