连接oracle报错“ORA-28547:connection to server failed,probable Oracle Net admin 解决办法

本文提供了解决Oracle数据库连接问题的三种方法,包括修改listener.ora文件、调整sqlnet.ora配置及解决Navicat工具连接Oracle的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个方法解决方案:

 

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_1。
  在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,输入用户名密码,无需输入服务名,直接登录即可。

### Navicat 连接 Oracle 报错 ORA-28547 的解决方案 ORA-28547 错误通常表示客户端无法成功建立到服务器的连接,可能是由于 Oracle Net 配置问题引起的[^1]。 #### 一、检查 TNSNAMES.ORA 文件配置 确保 `TNSNAMES.ORA` 文件中的条目正确无误。该文件位于 `$ORACLE_HOME/network/admin/tnsnames.ora` 路径下。确认其中定义的服务名与尝试连接的目标数据库相匹配,并验证 IP 地址和端口号是否准确。 #### 二、安装正确的 Oracle 客户端版本 有时不同版本之间的兼容性问题也会引发此错误。建议下载并安装适用于当前操作系统的最新版 Oracle Instant Client 或者完整版 Oracle Client。 ```bash # 下载地址 (以 Linux 平台为例) https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html ``` #### 三、设置环境变量 对于 Windows 用户来说,在系统属性 -> 高级系统设置 -> 环境变量 中添加如下项: | 变量名称 | 值 | | --- | --- | | PATH | C:\oracle\product\19.0.0\dbhome_1\bin;C:\oracle\instantclient_19_8 | | NLS_LANG | AMERICAN_AMERICA.AL32UTF8 | 而对于 Unix/Linux 用户,则需编辑 `.bash_profile` 或其他 shell 初始化脚本加入相应路径及语言编码设置。 ```shell export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 source ~/.bash_profile ``` #### 四、重启计算机和服务 完成上述更改之后,请重新启动电脑以及任何正在运行的相关服务(如监听器),以便使新的配置生效。 通过以上措施可以有效解决大部分因网络配置不当而导致的 ORA-28547 错误情况。如果仍然存在连接失败的现象,可能还需要进一步排查防火墙规则或其他安全策略的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值