Navcat Oracle 12514錯誤解決方法
每個開發(fā)者在使用Navicat連接Oracle時一定會遇到這個著名的錯誤——ORA-12514:
ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
這個問題一般會在以下情況下出現(xiàn):
1. 安裝Oracle數(shù)據(jù)庫后沒有啟動監(jiān)聽器
2. 監(jiān)聽器不知道要連接的服務(wù)名
3. 連接描述符使用的服務(wù)名不存在或者寫錯了
解決這個問題有很多方法。接下來我們一起看看怎樣解決Navcat Oracle 12514錯誤。
第一種方法:重啟監(jiān)聽器
當(dāng)你的Oracle數(shù)據(jù)庫沒有啟動監(jiān)聽器或者服務(wù)名不存在時,你可以通過重新啟動監(jiān)聽器來解決這個問題:
1. 進入cmd管理器,使用sqlplus命令連接Oracle數(shù)據(jù)庫。
2. 使用lsnrctl status命令查看監(jiān)聽器狀態(tài),如果看到“Service 'SERVICE_NAME' has 1 instance(s)”則表示監(jiān)聽器已經(jīng)了解服務(wù)名。
3. 如果看到“ service_name ”或“未知的解釋器名稱(services)”則表示監(jiān)聽器不了解服務(wù)名。此時你需要重啟監(jiān)聽器。使用lsnrctl stop和lsnrctl start命令分別停止和啟動監(jiān)聽器。
第二種方法:檢查連接描述符
當(dāng)你的監(jiān)聽器已啟動而連接描述符又沒有寫錯時,可能是服務(wù)名錯誤,嘗試這個方法:
1. 確認(rèn)連接描述符是否正確。連接描述符由以下三部份組成:數(shù)據(jù)庫的IP地址,監(jiān)聽器端口和服務(wù)名。例如,“(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.67.210.25)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=RACDB)))”。
2. 如果連接描述符正確,可以確認(rèn)服務(wù)名是否正確,或者在tnsnames.ora文件中添加正確的服務(wù)名。
第三種方法:檢查tnsnames.ora和sqlnet.ora文件
tnsnames.ora和sqlnet.ora文件是Oracle數(shù)據(jù)庫在啟服務(wù)器時讀取的配置文件。當(dāng)這些文件寫錯時,也會出現(xiàn)ORA-12514錯誤。
以下是tnsnames.ora文件的一個樣例:
TEST = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = app1)
)
)
以下是sqlnet.ora文件的一個樣例:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES)
請確保在連接描述符中使用的服務(wù)名與tnsnames.ora文件中定義的服務(wù)名一致。確保sqlnet.ora文件正確配置。
總結(jié):如果你連接Oracle遇到ORA-12514錯誤,不要著急。嘗試上述這些方法,相信你一定能解決這個問題!
上一篇css中 按鈕上下居中
下一篇php html 混合