連接Oracle遠程數據庫錯誤:ORA-12541,ORA-12514,ORA-01017的解決方法!


1.出現如下錯誤:ORA-12541:TNS:no listener,如下圖所示:

 

錯誤原因是我們沒有開啟Listener監聽器服務,解決方法是在服務中開啟這個服務,如下圖所示。

2.出現如下錯誤:ORA-12514:TNS:監聽程序當前無法識別鏈接描述符中請求的服務。如下圖所示:

解決方法是需要打開服務OracleServiceORCL,如下圖所示:

3.出現錯誤:ORA-01017:invalid username/password;logon denied。

解決方法:原來配置數據庫連接的時候用戶名和密碼都是安裝Oracle的時候配置的root和root。但是會出現上面的錯誤,后來使用用戶名:scott,密碼:tiger,能夠成功登陸。這個scott賬戶也是在安裝數據庫的時候配置的。

 

 

ORA-12514的錯誤用第2種方法解決不了,用下面這種方法:

解決方法:修改listener.ora
原:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Val\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
 )

修改后:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Val\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = E:\app\Val\product\11.2.0\dbhome_1)
      (SID_NAME = ORCL)
    ) 
 )
注意連接的時候服務名一定要使用ORCL!!!
這樣以后,關掉Service和LISTENER。再啟動Service和LISTENER,這樣應該就可以了,注意順序。
加上了面一段東西,意思是把LISTENER服務主動注冊到進程監視器(pmon)中去。所以,但你啟動了Serivce后,啟動LISTENER的時候,會主動去注冊到進程監視器(pmon)中去。所以不會有什么問題。但是反過卻不行。
如果說沒有添加那一段,情況正好相反,是由實例的pmon進程在LISTENER中注冊服務,LISTENER為被動注冊。所以需要先起LISTENER才可以。
總結一下,如果說你不加那段東西,那么就應該先起LISTENER,如果說你加了那段東西,就應該先起Serivce。
我試了一下,的確是這樣。(不過在windows上,有時候會報錯,重啟一下再試就可以了)

此文章為整理加轉載,參考文檔:

http://blog.csdn.net/xw13106209/article/details/6584753

http://blog.sina.com.cn/s/blog_7c0e26230100t0ci.html


免責聲明!

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



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