报错 Io 异常: The Network Adapter could not establish the connection的三种解决方法
Io 异常: The Network Adapter could not establish the connection
这个异常的出现一般与数据库和你的PC的设置有关
这种异常的出现大致上有下面几种:
1。IP错误。
在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp
数据库服务器不正确:ping 服务器IP是否正确。不正确,将URL更改为正确
端口号错误:一般不会错误。
进行一下操作:在DOS上键入sqlplus,检查oracle是否开启
一却正常,执行下面第2步。
2。防火墙
如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试重新连接。
仍然不行,执行第3步。
3。数据库监听未启动 修改PC上注册表中的ImagePath值。
我下面以现在主流的数据库ORACLE为例
重新手动启动数据库监听:
1:开始 → 运行→ 输入CMD→ 进入DOS命令提示界面
d:>lsnrctl
LSNRCTL> status
或者
LSNRCTL> start
以下是手动启动数据库的方法:
在运行处执行regedit进入注册表到
开始 →运行→ regedit
按下面路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener
找到OracleOraHome90TNSListener(我用的是Oracle9i 其他的版本的应该是OracleOraHomexxxTNSListener)
找到之后你会发现ImagePath关键值不存在了,创建它:(存在的话,点击修改,修改方法在下文有介绍)
右键单击,弹出菜单选择新键(N)→字符串值(S)
将其命名为ImagePath
选中ImagePath点右键,选中修改:
在值中输入你的Oracle安装目录\ora90(其他版本对应的是oraxxx目录)\bin\tnslsnr
确定后退出注册表:
再在DOS命令下键入start
如果出现下面画面,恭喜你,监听器启动成功:
关闭DOS,启动你的程序进行测试,应该恢复正常了。
以上就是3中常见的引发The Network Adapter could not establish the connection 异常的原因
如果还不能解决:
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JAVA)(PORT=1521)))
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin.JAVA)(PORT=1521)))
Microsoft Windows [版本 10.0.19043.1645] (c) Microsoft Corporation。保留所有权利。 C:\WINDOWS\system32>lsnrctl LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 15-4月 -2022 10:10:58 Copyright (c) 1991, 2010, Oracle. All rights reserved. 欢迎来到LSNRCTL, 请键入"help"以获得信息。 LSNRCTL> status 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 64-bit Windows Error: 2: No such file or directory 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin.JAVA)(PORT=1521))) TNS-12545: 因目标主机或对象不存在, 连接失败 TNS-12560: TNS: 协议适配器错误 TNS-00515: 因目标主机或对象不存在, 连接失败 64-bit Windows Error: 1001: Unknown error LSNRCTL> start 启动tnslsnr: 请稍候... TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production 系统参数文件为D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 写入d:\oracle\diag\tnslsnr\JAVA\listener\alert\log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin.JAVA)(PORT=1521))) TNS-12545: 因目标主机或对象不存在, 连接失败 TNS-12560: TNS: 协议适配器错误 TNS-00515: 因目标主机或对象不存在, 连接失败 64-bit Windows Error: 1001: Unknown error 监听程序未能启动。请参阅上面的错误消息... LSNRCTL> start 启动tnslsnr: 请稍候... TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production 系统参数文件为D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 写入d:\oracle\diag\tnslsnr\JAVA\listener\alert\log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Admin.JAVA)(PORT=1521))) TNS-12545: 因目标主机或对象不存在, 连接失败 TNS-12560: TNS: 协议适配器错误 TNS-00515: 因目标主机或对象不存在, 连接失败 64-bit Windows Error: 1001: Unknown error 监听程序未能启动。请参阅上面的错误消息... LSNRCTL> start 启动tnslsnr: 请稍候... TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production 系统参数文件为D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 写入d:\oracle\diag\tnslsnr\JAVA\listener\alert\log.xml的日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JAVA)(PORT=1521))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production 启动日期 15-4月 -2022 10:19:36 正常运行时间 0 天 0 小时 0 分 6 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 D:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 监听程序日志文件 d:\oracle\diag\tnslsnr\JAVA\listener\alert\log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=JAVA)(PORT=1521))) 服务摘要.. 服务 "CLRExtProc" 包含 1 个实例。 实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功 LSNRCTL>
S=(PROTOCOL=tcp)(HOST=JAVA)(PORT=1521)))
服务摘要…
服务 “CLRExtProc” 包含 1 个实例。
实例 “CLRExtProc”, 状态 UNKNOWN, 包含此服务的 1 个处理程序…
命令执行成功
LSNRCTL>
检查计算机名称 host 是否配置一致