之前学习Oracle数据库时,遇到了一个闹心的问题,身边也有众多好友遇到同样的问题,所以我决定把这个问题写出来~
首先给大家展示一下这个问题
上面显示的是用SQL Developer连接Oracle数据库时,总是提示IO 错误:Undefined Error,就是连接不上!!!
分析安装流程
本机系统:Windows10(保持更新)
下载:(全部为官网下载)
Oracle数据库(Oracle Database Express Edition 11g)
JDK(Java SE)
SQL Developer(SQL Developer-17.2.0.188.1159)
安装:
Oracle数据库安装选项全部默认,默认路径,密码设置为123;
JDK选择了安装Java SE 8u144 版本(当时的最新版),路径等设置全部默认
配置Java环境变量
SQL Developer不需要安装,直接打开使用
使用:
打开SQL Developer,选择Java路径,进入SQL Developer软件界面
新建连接
连接名:sys
用户名:sys
密码:123
角色:SYSDBA
连接名:sys
用户名:sys
密码:123
角色:SYSDBA
其他默认 其他默认
点击测试,出现“IO 错误:Undefined Error”
查找解决办法
通过百度、谷歌等搜索引擎查找,发现遇到同样问题的人不少,下面给出的答案却很少(还有的就是瞎xx答,答非所问),靠谱的说法大致分为以下几种:
检查监听服务是否打开
把localhost改为127.0.0.1,或者本机网络IP
检查端口是否正确
检查防火墙
修改C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN目录下配置文件(listener.ora和tnsnames.ora),或者根据配置文件里的host和port填写
修改SID,或者填写服务名
等······
解决问题过程
上述方法经过测试,全部阵亡~
在别人电脑上测试,多个电脑直接成功(同样安装包与流程,都是win10系统)
回到自己电脑继续折腾,自己试了很多骚操作,再次全部阵亡~
因为Oracle版本为老师要求的,没有更改;JDK也没有更换;换低版本SQL Developer,阵亡~
将本机系统账号权限提高,继续阵亡~
启用win10真正的Administrator账号,切换到administrator账号下,成功!!!
再次切换回自己账户,阵亡~
不想为了一个软件,每次都切换账户,选择重装系统!!!
重装系统后,再次操作,竟然还不行,还是同样错误;然后再次重装系统,这次竟然谜一般的正常了
注:两次重装系统后安装的Oracle、JDK、SQL Developer全部和重装前为同样的安装包,操作一样!!!
分析:同样的资源与操作,在不同电脑上,成功与失败都有;同样的资源与操作,在同一个电脑上重装两次系统才成功!只能理解为抽风!
另一种骚操作(意外得知的一个方法)
因为再次帮别人装Oracle,又遇到同样问题~
然而,同学告诉我,重新下载一个低版本SQL Developer,给解决了!!!
经过测试,竟然真的解决了···
这次,我用的是SQL Developer-4.1.2.20.64
但是,我之前也用过低版本的SQL Developer,当时的测试是不行的,可能,我测试的版本还不够低吧!
目前可以公开的情报:最新版SQL Developer能不能成功连接Oracle,看运气!低版本SQL Developer很大几率可以成功连接Oracle!
我这篇教程发出后,有人给具体检查了一下,原因是新版SQL Developer其中的几个jar包与安装的较新的jdk不兼容。
看来,因为官网给的始终是最新版SQL Developer,让很多人遇到了这种问题~
好吧,认栽!
总结
SQL Developer连接Oracle出现“IO 错误:Undefined Error”
目前最靠谱的两个方法:
1. 使用低版本的SQL Developer,这里分享一个sqldeveloper-4.1.2.20.64-x64给大家
链接:http://pan.baidu.com/s/1hrJoJKo 密码:a86q
2. 重装系统!(这个有点搞笑成分,不推荐)