能够通过localhost而不是IP地址访问Oracle数据库

时间:2016-06-30 08:43:33

标签: oracle oracle11g database-connection oracle12c

我已经安装了Oracle 11g,为了测试目的,我使用编辑器(称为DBeaver)连接到数据库。 当主机名提供localhost时,它会连接。但是当主机名作为系统的IP提供时,编辑器无法连接并显示以下消息。

IO Error: The Network Adapter could not establish the connection
  The Network Adapter could not establish the connection
    java.net.ConnectException: Connection refused: connect

我尝试从

更改listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.140.0.3)(PORT = 1521))
    )
  )

这里我用IP替换了localhost,即10.140.0.3。 但到目前为止无法连接它。 任何人都可以分享一些经验吗?

2 个答案:

答案 0 :(得分:4)

您的listener.ora条目不正确。它应该如下所示。

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

为避免与手动编辑相关的错误,请使用网络管理器并从那里添加地址。 检查以下屏幕截图以使listener.ora文件相关更改。

Open Oracle Net Manager

Add IP address to the Listener

更改完成后,不要忘记将其从Oracle Net Manager保存!

答案 1 :(得分:1)

您可以在具有IP地址的计算机上安装Oracle数据库。 IP地址与主机名相关联;您可以为主机名设置别名。 默认情况下,Oracle Universal Installer使用ORACLE_HOSTNAME环境变量设置来查找主机名。

设置ORACLE_HOSTNAME环境变量:

Windows控制面板中的显示系统。

在“系统属性”对话框中,单击“高级”。

在“高级”选项卡中,单击“环境变量”。

在“环境变量”对话框的“系统变量”下,单击“新建”。

在“新建系统变量”对话框中,输入以下信息:

变量名称:ORACLE_HOSTNAME 变量值:要使用的计算机的主机名。 单击“确定”,然后在“环境变量”对话框中,单击“确定”。

在Environment Variables对话框中单击OK,然后在System Properties对话框中,单击OK。

参考:https://docs.oracle.com/cd/E11882_01/install.112/e47798/reqs.htm#NTDBI2710