sql - 使用 Oracle Sql developer(远程)连接到 oracle 12c

标签 sql oracle oracle-sqldeveloper oracle12c

我一直在尝试使用 Oracle SQL Developer 远程连接到 Oracle 12c。它在连接到服务器期间显示以下错误:

 Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection 

我确实可以连接到服务器上的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))     
)
)

最佳答案

你的 listener.ora 说它只在 localhost (127.0.0.1) 上监听,所以除了服务器之外,任何地方都无法连接;服务器外部 IP 地址上的端口 1521 上没有任何监听。您可以使用 lsnrctl statusnetstat -ano | 验证这一点找到“1521”

您需要修改 listener.ora 以监听您服务器的主机名,或者如果它不能解析为正确的 IP,外部 IP 地址本身 - 您的“有效 IP 地址”正在尝试从 SQL Developer 连接到:

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =      
  (ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521))     
)
)

您可能还需要检查您的数据库是否能够成功注册。在您进行更改并重新启动监听器之前和之后,我会验证它是否包含在 lsnctrl services 中。如果重启后它没有出现,并且 alter system register 没有让它出现,那么你可能需要更改 local_listener 数据库参数来告诉它地址和它应该注册的端口。这确实是一个单独的问题,但可以根据此更改进行后续处理; there's an example here如果确实如此,这可能会有所帮助。

关于sql - 使用 Oracle Sql developer(远程)连接到 oracle 12c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892999/

相关文章:

sql - 插入包含前几行信息的新列

mysql - 用于删除重音的 SQL 排序规则

sql - 就像在 SQL 中搜索数字列一样

sql - ORA-02264 : name already used by an existing constraint

mysql - 带变量的 SQL 查询,select 语句中的 IF

java - Hibernate 分离查询作为标准查询的一部分

mysql - WHERE 带有 IN 运算符但开始于而不是完全匹配

sql - Oracle SQL 语句中多列的总和(按唯一 ID)

oracle-sqldeveloper - SQL Developer 启动失败

sql - 我需要什么才能在查询中执行查询?