目录
背景
一、相关环境
1、操作系统
3、ORACLE连接
4、默认连接
二、问题分析
1、默认dll配置
三、修改配置
1、下载匹配的client
2、替换相应目录
总结
背景
最近在项目中需要使用Oracle数据库,当前很多应用系统的数据都存储在MySQL或者PostgreSQL中。由于历史原因,仍然有部分系统是将数据存储在ORACLE中的。对于一般开发者来说,我们仅仅只需要通过程序或者客户端软件去查询和修改数据,使用像Navicat这样的瘦客户端直接连接数据库即可。
项目组其它同事使用Oracle client+PL/SQL的组合,算是比较常用的客户端了。但是不想去安装一个Oracle Client,同时还要进行配置,虽不算复杂,但比较繁琐。也不想安装那么多客户端,而本地已经安装了Navicat,因此想着直接使用这款工具来进行操作。
但是,在使用Navicat连接Oracle11g服务端时,发生了一些小插曲。本文将重点讲述在Windows环境下Navicat15连接Oracle11g时报ORA-28547:connection to server failed,probable Oracle Net admin error错误,以及怎么解决这个错误。如果你也在使用这款工具,碰到同样的问题,可以有一定的参考性。
一、相关环境
1、操作系统
开发电脑的操作系统是:Windows7 旗舰版。
2、Navicat版本
Navicat的版本使用的15.0.11-premium。
3、ORACLE连接
这里Oracle使用的11g,使用SERVICE_NAME的方式对外提供服务。
devdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.39.135.66)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = devdb)
)
)
4、默认连接
在Navicat的连接窗口中,新建Oracle连接,示意图如下:
在这个连接页面,输入上一步中提供的ORACL数据库连接信息。点击左下角的测试连接按钮。如果出现以下提示窗口,那么您可以继续往下看,否则您可以关闭当前浏览的网页了。
首先,这里要确保Oracle Server是正常能提供服务能力的。错误信息如下:
ORA-28547:connection to server failed,probable Oracle Net admin error
二、问题分析
出现这个问题的原因并不是服务不可用,而是因为navicate连接oracle服务的客户端接口程序版本太老了。而oracle server用的是11g的,因此需要使用匹配的客户端才可以连接数据库。
1、默认dll配置
首先来看一下Navicat默认安装的路径下的dll文件。点击工具==>选项,打开以下页面。
然后在下面的界面中查看“环境”选项。
打开OCI环境选项后面的文件浏览按钮可以看到具体文件:
三、修改配置
1、下载匹配的client
知道了问题的所在就好解决问题了。需要在Oracle的官方网站下载相应的包。官方下载地址。打开界面如下:
选择下载Windows客户端,进入版本的选择。
这里下载basic版本即可,将下载下来的包解压后可以看到如下文件
2、替换相应目录
将解压之后的文件拷贝至Navicat原来默认的OCI文件存放地址替换老的。在确认OCI环境配置无误后,重启Navicat,尝试再次进行Oracle连接。
可以看到,客户端已经能正确连接Oracle服务了,下面就可以愉快的进行应用程序开发了。
总结
以上就是本文的主要内容,本文将重点讲述在Windows环境下Navicat15连接Oracle11g时报ORA-28547:connection to server failed,probable Oracle Net admin error错误,以及怎么解决这个错误。如果你也在使用这款工具,碰到同样的问题,可以有一定的参考性。行文仓促,如有不当之处,欢迎各位朋友在评论区留言批评指正。由于Oracle官网可能访问速度较慢,如果您也是使用Oracle11g,可以点击windows 下oracle11g navicate dll连接包 进行下载,请注意,其它版本还是到官网上下载。