在windows7虚拟机内安装了oracle,然后在主机通过navicat for oracle进行远程连接时报
Oracle ORA-12541:TNS:no listener的错误

原因是:

  • 配置虚拟机地址时没有指定IP,默认随机的localhost地址,就安装Oracle了。在安装Oracle的时候,默认的ip被写入了oracle的监听配置文件,所以通过外连接连接指定的ip,固然连接不上,因此需要被正确的ip地址写入到Oracle的配置文件里。

解决方法:

  • 在虚拟机上,找到Oracle的安装目录,修改oracle安装目录目录
    E:\app\one\product\11.2.0\dbhome_1\NETWORK\ADMIN下的两个文件

Oracle ORA-12541:TNS:no listener

  • 分别修改这两个文件,讲其中的localhost改为虚拟机的ip地址,重启虚拟机,再次连接便成功!

Oracle基本是默认安装,安装过程没出现过任何异常
Oracle开启了两个服务:

OracleServiceORCL和OracleOraDb11g_home1TNSListener

在navicat工具上使用就是如下的问题:

  • Navicat一直都连接不上本地的Oracle
    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/technetwork/database/features/instant-client/index-097480.html
    下载client,不管你的机器是不是32位的,都必须下载32位的OCI!

    • 还有一点要注意,Oracle9i或以上版本的,要安装Install Client11或以下;Oracle8或8i服务器,需要安装Install Client10或以下。这个问题不大,因为我们现在的Oracle都是10或11及以上了,注意一下就好。
  • 里面很多,根据你的版本来下,我下载的是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 连接,就大概能连接上了

参考:
https://www.cnblogs.com/fby698/p/10673856.html
https://blog.csdn.net/weixin_34129696/article/details/94029420

相关文章: