在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下的两个文件
- 分别修改这两个文件,讲其中的
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