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

时间:2012-09-24 23:38:41

标签: java windows-7 jdbc oracle11g bootcamp

我是Oracle新手,我正在尝试使用Java运行一个简单的示例代码,但在执行代码时遇到此错误。我能够通过CMD启动侦听器并且还能够运行SQL Plus 。任何人都可以帮我一把,告诉我我可能做错了吗?

更新: 我正在使用JDBC。

数据库是本地的,我实际上已经有了它的工作但它今天就停止了工作。我不太确定为什么。你介意给我一些程序,因为我不太了解。

11 个答案:

答案 0 :(得分:28)

或者:

  1. 数据库未运行
  2. 您的网址错误
  3. 路上有防火墙。
  4. (这个奇怪的错误消息是Oracle的JDBC驱动程序无法连接到数据库服务器时产生的。'网络适配器'似乎是指代码中的某些组件,这不是很有用。真正的网络适配器( NICs根本没有建立连接:TCP协议栈就是这样做的。如果它们只是抛出原始的ConnectException,或者至少使用它的错误消息并让它出现,那将会更有用在堆栈跟踪中。)

答案 1 :(得分:7)

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

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

  • 登录

    • 用户名
    • 密码
    • connect as - >正常
  • 在'General'下方点击LISTENER_localhost

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

    • 完成

答案 2 :(得分:3)

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

HOST = localhost

HOST = 192.168.XX.XX

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

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

如果上述步骤正确,那么您需要适当地配置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/

答案 8 :(得分:0)

在Windows属性中重命名PC时出现此错误。 pc名称必须在listener.ora文件中

更新

答案 9 :(得分:0)

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

希望这会有所帮助。

答案 10 :(得分:0)

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