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

Able to access Oracle database by localhost not by IP address

我已经安装了 Oracle 11g,出于测试目的,我使用编辑器(称为 DBeaver)连接到数据库。 当主机名提供本地主机时,它会连接。但是当主机名作为系统的 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。 但到目前为止无法连接它。 任何人都可以分享一些这方面的经验吗?

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

设置ORACLE_HOSTNAME环境变量:

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

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

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

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

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

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

在“环境变量”对话框中单击“确定”,然后在“系统属性”对话框中单击“确定”。

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

您的 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 保存它!