Oracle - 連線發生 ERROR: ORA-12560: TNS: 協議介面卡錯誤
阿新 • • 發佈:2018-11-18
今天使用Java連線Oracle時,程式丟擲SQLException:
java.sql.SQLException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at sql.Oracle.getConn(Oracle.java:23) at sql.Oracle.query(Oracle.java:55) at sql.Test.main(Test.java:8) Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
從出錯log中我們可以看出,ORA-12514 是因為監聽器拒絕了連線。
發生這樣的原因大致有兩種,一個是監聽器沒有開啟,一個是服務名出錯。
考慮到我們昨天程式碼執行正常,所以第二種情況可以排除。
為了證明我們車猜想,我們開啟SQL*Plus,嘗試連線
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 10月 14 09:14:19 2018 Copyright (c) 1982, 2010, Oracle. All rights reserved. 請輸入使用者名稱: system 輸入口令: ERROR: ORA-12560: TNS: 協議介面卡錯誤
錯誤程式碼更新為:ORA-12560 :TNS :協議介面卡錯誤。
發生這個問題 :原因也有三個。監聽器問題,例項問題,以及登錄檔問題。
登錄檔,如果大家沒有隨意修改,應該不會有錯。
對於前兩者問題,我們則有比較簡單有效的辦法。
開啟服務。
對Oracle開頭的服務全部啟動。
再次嘗試連線,成功。
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 10月 14 09:14:19 2018 Copyright (c) 1982, 2010, Oracle. All rights reserved. 請輸入使用者名稱: system 輸入口令: ERROR: ORA-12560: TNS: 協議介面卡錯誤 請輸入使用者名稱: system 輸入口令: 連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>