Navicat连接Oracle时报错ORA-28547怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Navicat连接Oracle时报错ORA-28547怎么办相关的知识,希望对你有一定的参考价值。

第一种、解决方案如下:

listener.ora是服务器端的配置oracle的文件。

后来将listener.ora的这一行注释掉,就行了,, (PROGRAM = extproc)
修改为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = prod)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
# (PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)

第二种、解决方案如下:

参考:https://forums.oracle.com/forums/message.jspa?messageID=693607

整理如下:

客户端的配置文件sqlnet.ora中配置如下:

将#SQLNET.AUTHENTICATION_SERVICES= (NTS)注释掉,改成如下即可!

如下:
SQLNET.AUTHENTICATION_SERVICES= (NONE)

同时修改监听器配置文件,具体做法是: 在oracle安装目录下搜索listener.ora文件,一般在$/NETWORK/ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。

第三种、解决方案如下:

如果你以上使用的是plsql developer工具或者是toad工具,应该以上的操作就绝对可以解决你的问题,

但是如果你使用的是 navicat工具,以上怕是还不能解决你的问题。具体的如果在navicat工具上使用就是如下的问题:

Oracle基本是默认安装,安装过程没出现过任何异常
Oracle开启了两个服务:OracleServiceORCL和OracleOraDb11g_home1TNSListener
Navicat一直都连接不上本地的Oracle
网上搜了一大堆资料,大都是改那3个配置文件的
最终还是没能解决这个问题

最终的问题是:

Navicat主机那里如果填本机IP地址(192.168.18.8),错误代码是:ORA-12541:TNS:no listener
如果填localhost,错误代码是:ORA-28547:connection to server failed,probable Oracle Net admin error
tnsping localhost 是通的,tnsping 192.168.18.8 则出错 TNS-12541: TNS: 无监听程序

解决的方案是:

oci.dll的版本不对 从 http://www.oracle.com/technology/software/tech/oci/instantclient/index.html 下载client里面很多,根据你的版本来下,我下载的是instantclient_11_2。
在navicat的 工具-选项-其他-OCI ,选择刚下的client中的 oci.dll
设置环境变量:
1)在环境变量PATH中开头增加C:\Instantclient10_2;
2)增加用户环境变量SQLPATH,值为C:\Instantclient10_2
3)增加用户环境变量NLS_LANG,值为AMERICAN_AMERICA.UTF8
选择 Basic 连接,就大概能连接上了

以上的操作可以通过如下进行排查:

1、首先确认你的数据库已经启动了,可以用net start OracleServiceORCL
2、其次确认你的侦听启动了否,用lsnrctl status查看,如果没有启动,用lsnrctl start启动。
3、以上启动后,直接打开sqlplus,输入用户名密码,无需输入服务名,直接登录即可。
参考技术A 解决案:
listener.ora服务器端配置oracle文件
listener.ora行注释掉行 (PROGRAM = extproc)
修改:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = prod)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
# (PROGRAM = extproc)
)本回答被提问者采纳

坑向: 关于在Navicat中对Oracle数据库表空间的数据文件进行重命名和修改路径时报错ORA-01511,ORA-01121,ORA-01110的解决办法

坑向: 关于在Navicat中对Oracle数据库表空间的数据文件进行重命名和修改路径时报错ORA-01511,ORA-01121,ORA-01110的解决办法

1 环境介绍

  • windows环境
  • Navicat Premium 12

2.1 发生的问题

Oracle数据库文件进行重命名或修改路径时发生 类似错误

2.2 实现目标

将原数据文件 D:\\NEWFILE (其对应表空间为TEST)
重新命名并放置在新的路径下,成为新的数据文件 D:\\OracleDataFile\\BLOCK2

3 主要思路

  1. 将Oracle数据库完全打开(open状态),
  2. 以system用户(只要具有可以修改数据文件的权限即可)登录数据库后(采用Navicat连接数据库),
  3. 将需要修改的表空间设置为离线(需要修改的数据文件属于该表空间),
  4. 手动先复制原数据文件到指定目录下,并重命名该文件,
  5. 最后在Navicat中执行相关的修改操作。

4 具体步骤

4.1 打开数据库

启动相关Oracle数据库服务 或 使用sql plus 的 startup命令

4.2 在Navicat上进行对Oracle数据库的连接

4.3.1 选择表空间

4.3.2 找到目标表空间及待修改的数据文件NEWFILE,发现其所属表空间为TEST

4.3.3 将目标表空间设置为离线

4.4 在windows系统中利用windows的图形化文件管理系统 手动将原数据文件进行拷贝(原数据文件NEWFILE复制的目标路径下,并进行重命名)

4.4.1 选择原数据文件 D:\\NEWFILE

4.4.2 复制到目标路径下 D:\\OracleDataFile\\

4.4.3 对手动复制的数据文件进行重命名为 BLOCK2

4.5 在Navicat中进行修改相关属性操作并保存


保存查看最终效果

4.6 如需要对数据文件进行额外操作,需要及时将表空间再次设置为在线(具体可参照4.3.3)

以上是关于Navicat连接Oracle时报错ORA-28547怎么办的主要内容,如果未能解决你的问题,请参考以下文章

MySQL连接Navicat时报错常见的几种情况

Navicat连接Oracle的几个问题及解决方案

在Navicat中连接数据库时报错2003时的解决方案

navicat 连接oracle 数据库会报错

已解决使用Navicat连接MySQL数据库时报错Client does not support authentication protocol requested by server; cons(代

解决Navicat连接MySQL数据库报错问题