![编辑2](https://linux22.com/image/582186/%E7%BC%96%E8%BE%912.png)
再会,
我刚刚设置了 Oracle Linux 虚拟机(使用 VirtualBox),其中装有 Oracle 数据库。设置完成后,我可以验证是否可以使用 sqlplus(虚拟机的 sqlplus)连接到它
$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Apr 21 14:32:48 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn myusername/mypassword
Connected.
SQL> select count(1) from my_table;
COUNT(1)
----------
73
SQL>
但是,当我尝试使用 JDeveloper 从主机进行连接时,我得到了
状态:失败 - 测试失败:IO 错误:网络适配器无法建立连接。
我尝试从主机的 JDeveloper 连接到我们内联网上的其他数据库,并且成功了。此外,我还尝试关闭虚拟机的 iptables(以防万一)。
sudo /etc/init.d/iptables stop
但到目前为止,还没有任何效果。
有任何想法吗?
谢谢,
弗朗兹·西
编辑: 更新:我刚刚在主机上安装了 sqlplus(提醒其他人:instantclient 10.2.0.4.0 64bit 无法在 Mac 上运行。即使您的 Mac 和我的一样是 64 位的,也请使用 32 位的。),然后我尝试连接到虚拟机中的 oracle db,成功了!但是,我仍然无法使用 JDeveloper 进行连接。
答案1
在安装了 sqlplus 的机器上,在你的情况下是虚拟机的主机,你需要设置 Oracle 环境变量然后才能连接到其他 Oracle 数据库服务器。例如:
setenv ORACLE_SID orcl
setenv ORACLE_HOME /u01/app/oracle/product/11.1.0/db_1
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib
您可能必须手动创建管理文件夹和tnsnames.ora
该文件夹中的文件。
连接到远程 Oracle 服务器的过程不是向导驱动的,需要您手动操作。上面链接的帮助文档将指导您完成特定环境所需的操作。
编辑1
抱歉,我想我现在明白了。让我们尝试一些不同的东西。
我认为虚拟机上的实例侦听器未侦听 IP 地址。在虚拟机上,转到 Oracle Enterprise Manager Web 界面上的“Net Services Administration”(网络服务管理)页面。编辑侦听器 ( LISTENER_localhost
) 并添加侦听器,然后选择使用实例的 IP 地址。保留默认端口 1521。系统将询问您是否要重新启动服务。请重新启动。然后您应该能够从主机(或任何其他机器)进行连接。
编辑2
在 JDeveloper 中,使用第 4 站中的第 3 站上的连接向导,使用服务名称,而不是 SID。
答案2
我搞清楚了“状态:失败 - 测试失败:IO 错误:网络适配器无法建立连接”是什么意思。事实证明,由于代理配置,它无法建立连接。