SQL Developer连接Oracle报错:网络适配器无法建立连接
解决Oracle监听器启动后自动停止及连接报错17002问题
检查监听器配置文件
- 定位到Oracle安装目录下的
network\admin文件夹,打开listener.ora文件 - 确认配置项的正确性,示例正确配置如下:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = DENEME) (ORACLE_HOME = D:\app\yourname\product\19.0.0\dbhome_1) (PROGRAM = extproc) ) ) - 注意:
HOST优先用127.0.0.1避免主机名解析问题;ORACLE_HOME路径要和实际安装路径完全一致,不能包含空格或特殊字符
排查端口占用
- 打开CMD,执行命令:
netstat -ano | findstr :1521 - 若有其他进程占用1521端口,记下对应PID,在任务管理器中结束该进程;也可修改
listener.ora中的PORT为未被占用的端口(如1522)
验证Oracle实例状态
- 打开CMD,执行
sqlplus / as sysdba - 执行
startup启动未运行的实例,再执行alter system register;让实例注册到监听器
手动操作监听器
- CMD中执行
lsnrctl stop停止监听器 - 执行
lsnrctl start手动启动,查看输出的报错信息,快速定位问题 - 若仍自动停止,查看监听器日志:路径为
diag\tnslsnr\你的主机名\listener\trace下的listener.log,日志会记录具体故障原因
检查服务依赖
- 打开服务管理器(输入
services.msc回车),找到OracleOraDB19HOME1TNSListenerDENEME服务 - 右键选“属性”-“依赖项”,确认依赖的Oracle实例服务(如
OracleServiceDENEME)已启动 - 先启动依赖的实例服务,再尝试启动监听器服务
内容的提问来源于stack exchange,提问作者buggi
相关产品推荐
相关产品推荐

