oracle 報錯ORA-12514: TNS:listener does not currently know of service requested in connec


  原文地址:https://www.cnblogs.com/qin10086/p/5692162.html

  在使用navicat上連接oracle正確用戶名和密碼,oracle常用服務也啟動的情況下依然無法建立連接。但是sqlPus上輸入用戶名和密碼可以連接通過,百思不得其解(菜鳥本質 好奇)。

這種情況下查看了navicat的歷史日志:ORA-12514: TNS:listener does not currently know of service requested in connect。

  通過網上搜索查到說 navicat工具是32位,oracle64位不匹配,心想很有可能是這原因。因此通過博友給出的路徑http://www.oracle.com/technetwork/topics/winsoft-085727.html下載到instantclient-basic-nt-11.2.0.3.0.zip (51,149,941 bytes) 解壓(對於需要到的資料記住目錄)。但是在navicat工具-選項-OCI 更改路徑。重新連接,失敗!重啟再試,依然連接報錯。問題回到報錯ORA-12514: listener does not currently know of service requested in connect偵聽器目前並不知道連接的服務請求。既然listener 不知道怎么讓它知道呢?為什么不知道?好難懂呀難道是安裝oracle失敗了 但是sqlPus上連接又為什么又通過了?為解決疑問重新安裝了oracle 在安裝前了卸載,控制面板上沒有此軟件,軟件管家倒是有,總之問題多多。卸載 刪除 清理注冊表(運行regedit 大致在services下面)否則無法重裝oracle。重新安裝連接依然不行。問題還是回到了listener does not currently know of service requested in connect偵聽器目前並不知道連接的服務請求,怎樣能讓listener know?

  通過上網查到可通過修改listener.ora文件解決。http://blog.csdn.net/icqsky/article/details/4313791

添加了一段在安裝目錄E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN 下文件修改了家上一段復制的代碼(藍色部分):

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )(SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
    (SID_NAME = ORCL)
    )
  )

關掉Service和LISTENER,再啟動Service和LISTENER。最開始復制未留意到ORACLE_HOME =目錄,復制目錄不是本機文件目錄,因此失敗,細節真的很重要!。。。慶幸的是改過來后連接成功了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM