Windows下Navicat15.0连接Oracle11g报ORA-28547解决

目录

背景

一、相关环境

1、操作系统

2、Navicat版本

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的方式对外提供服务。

java 复制代码
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是正常能提供服务能力的。错误信息如下:

bash 复制代码
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连接包 进行下载,请注意,其它版本还是到官网上下载。