在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