使用Oracle Sql开发人员(远程)连接到oracle 12c

Ali*_*Ali 3 sql oracle oracle-sqldeveloper oracle12c

我一直在尝试使用Oracle SQL开发人员远程连接到Oracle 12c.它在连接到服务器时显示以下错误:

 Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection 
Run Code Online (Sandbox Code Playgroud)

我可以连接到服务器上的oracle数据库,但问题是远程连接到这个服务器(数据库)

我的listener.ora的内容是:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
  (SID_NAME = CLRExtProc)
  (ORACLE_HOME = D:\app\ORCLNEWUSER\product\12.1.0\dbhome_1)
  (PROGRAM = extproc)
  (ENVS =  "EXTPROC_DLLS=ONLY:d:\app\ORCLNEWUSER\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =      
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))     
)
)
Run Code Online (Sandbox Code Playgroud)

Ale*_*ole 5

listener.ora说的只是监听localhost(127.0.0.1),所以除了服务器之外什么也都无法连接; 在服务器的外部IP地址上没有侦听端口1521.您可以使用lsnrctl status和验证netstat -ano | find "1521".

您需要修改listener.ora以侦听服务器的主机名,或者如果无法解析为正确的IP,则需要外部IP地址本身 - 您尝试从SQL Developer连接到的"有效IP地址":

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =      
  (ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521))     
)
)
Run Code Online (Sandbox Code Playgroud)

您可能还需要检查数据库是否能够成功注册.我会验证它是否包含在lsnctrl services您进行更改之前和之后并重新启动侦听器.如果它在重新启动后没有显示,并且alter system register没有显示,那么您可能需要更改local_listener数据库参数以告诉它应该注册的地址和端口.这是一个单独的问题,但可以从这个变化中继续下去; 这里有一个例子可能会有所帮助.

  • @Ali - 然后IP地址无效,或者您在`ADDRESS`行中有其他错误.检查IP是否由`ipconfig`列出并且您可以ping它 - 从文件复制以确保您没有输入错误,也许.不确定还有什么建议,抱歉. (2认同)