解決ORA-12154 TNS無法解析指定的連接標(biāo)識(shí)符問題
ORA-12154:TNS:無法解析指定的連接標(biāo)識(shí)符
1問題的描述
Oracle11g server 64bit服務(wù)器端安裝在Windows Server2008 Enterprise上,安裝Oracle11g client 32bit,通過SQL Plus以sysdba身份可以連接數(shù)據(jù)庫,并且創(chuàng)建表空間、用戶、授權(quán)成功,如下圖所示。
但是在連接數(shù)據(jù)庫時(shí)出現(xiàn)了一些問題:
(1)在客戶端配置服務(wù),通過PLSQL連接數(shù)據(jù)庫,出現(xiàn)錯(cuò)誤“ora-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”;
(2)通過PLSQL能夠正確連接Oracle11g,但是同樣的用戶名密碼在VS2010中卻無法連接,報(bào)錯(cuò)“ORA-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”;
(3)在VS2010中能夠正確訪問Oracle11g,但是網(wǎng)站發(fā)布之后數(shù)據(jù)無法訪問,報(bào)錯(cuò)“ORA -12154: TNS:無法解析指定的連接標(biāo)識(shí)符”。
2問題的解決
2.1在客戶端配置服務(wù),通過PLSQL連接數(shù)據(jù)庫,出現(xiàn)錯(cuò)誤“ORA-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”
(1)解決本問題需要給系統(tǒng)添加環(huán)境變量TNS_ADMIN并且將oracle服務(wù)器端和客戶端“….NETWORK\ADMIN”路徑復(fù)制給該環(huán)境變量,并且將oracle客戶端的路徑放在前面,如下圖所示。
(2)然后在PLSQL中(點(diǎn)擊“取消”,在沒有成功登陸的情況下也可以設(shè)置連接屬性),點(diǎn)擊“tools”->“preferences”,在對(duì)話框中設(shè)置oralce home和OCI library,其中Oracle home選擇所安裝的oracle服務(wù)器端,oci library設(shè)置oracle 32位客戶端的“****product\11.2.0\client_1\bin\oci.dll”路徑。
2.2通過PLSQL能夠正確連接Oracle11g,但是同樣的用戶名密碼在VS2010中卻無法連接,報(bào)錯(cuò)“ora-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”
這個(gè)問題的出現(xiàn)實(shí)在讓人無語,正常情況下在VS2010中選擇“Server Explorer”->Data Connection->Add Connection輸入數(shù)據(jù)庫連接的信息,是可以成功連接oracle數(shù)據(jù)庫的,但是讓人不解的是同樣的用戶名/密碼在PLSQL中可以正常登陸,但是在這里卻會(huì)顯示上圖所示的錯(cuò)誤。這樣在運(yùn)行VS程序時(shí),顯示上述錯(cuò)誤。
更莫名其妙的事情是,我們?cè)诳蛻舳酥匦屡渲昧艘粋€(gè)新的服務(wù),并用新的服務(wù)去連接的時(shí)候,居然成功了。至此,我們反思,只有一種原因,那就是之前我們用的服務(wù)是在設(shè)置環(huán)境變量“TNS_ADMIN”之前配置的,由于編輯了環(huán)境變量,導(dǎo)致Oracle無法獲取之前的服務(wù)名稱。
2.3在VS2010中能夠正確訪問Oracle11g,但是網(wǎng)站發(fā)布之后數(shù)據(jù)無法訪問,報(bào)錯(cuò)“ORA-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”
當(dāng)你解決了遇到的問題,覺得自己已經(jīng)取得成功的時(shí)候,往往還會(huì)有新的問題出現(xiàn),現(xiàn)實(shí)就是這樣無情,它會(huì)迫使你將一個(gè)問題徹底搞清楚。
在VS程序中能正確訪問的Oracle數(shù)據(jù)庫,當(dāng)網(wǎng)站在IIS中被發(fā)布以后,數(shù)據(jù)庫仍舊不能訪問,該死的“ORA-12154: TNS:無法解析指定的連接標(biāo)識(shí)符”。
出現(xiàn)本問題是因?yàn)镺racle的訪問權(quán)限問題,第一種情況是Oracle目錄缺乏Authenticated Users用戶權(quán)限,第二種情況是缺乏interner來賓用戶權(quán)限。
Authenticated Users權(quán)限設(shè)置參考博客——
Asp.Net 應(yīng)用程序在IIS發(fā)布后無法連接oracle數(shù)據(jù)庫問題的解決方法 見文末補(bǔ)充介紹。
具體方法是在oracle安裝目錄(d:"oracle")上右鍵,屬性->安全,選中Authenticated Users將權(quán)限的讀取和運(yùn)行項(xiàng)的勾去掉,再打上,然后點(diǎn)擊應(yīng)用,再點(diǎn)擊高級(jí),選中“用在此顯示的可以應(yīng)用到子對(duì)象的項(xiàng)目替代子對(duì)象的權(quán)限項(xiàng)目”,點(diǎn)擊確定,然后重新啟動(dòng)機(jī)器 。
需要注意地方是設(shè)置完權(quán)限后,一定要重啟電腦才會(huì)權(quán)限設(shè)置才會(huì)生效。
添加internet來賓用戶
(1)在Oracle目錄上右擊選擇“屬性”,顯示如下對(duì)話框。
?。?)點(diǎn)擊“編輯”進(jìn)入權(quán)限編輯對(duì)話框,如下圖所示。
(3)點(diǎn)擊“添加”顯示如下對(duì)話框。
?。?)點(diǎn)擊“高級(jí)”進(jìn)入用戶和組選擇對(duì)話框。選擇internet來賓用戶“IIS_IUSRS”,然后一路確定即完成該用戶權(quán)限的設(shè)置。操作完成后請(qǐng)牢記一定要重啟電腦,設(shè)置才能生效。
關(guān)于添加aspnet用戶
網(wǎng)上有博主說這個(gè)問題是由于Oracle目錄沒有aspnet用戶訪問權(quán)限所致,而有些情況下電腦上雖然安裝了vs但是還是會(huì)沒有aspnet用戶,本人按照博客上的方法——下圖所示添加aspnet用戶,但是該操作雖然能夠成功完成,但是系統(tǒng)用戶和組中還是不會(huì)出現(xiàn)aspnet用戶。奇怪是不去管它,只進(jìn)行Authenticated Users權(quán)限設(shè)置和添加internet來賓用戶也可以在發(fā)布后的網(wǎng)站內(nèi)成功訪問Oracle數(shù)據(jù)庫。
3參考文獻(xiàn)
[1] ORA-12514 TNS 監(jiān)聽程序當(dāng)前無法識(shí)別連接描述符中請(qǐng)求服務(wù) 的解決方法
http://www.blogjava.net/freeman1984/archive/2011/04/15/348350.html
[2] http://bbs.csdn.net/topics/390312212
[3] Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 問題解決!
http://www.blogjava.net/wahahacj/archive/2007/11/19/161689.html
補(bǔ)充:
Asp.Net 應(yīng)用程序在IIS發(fā)布后無法連接oracle數(shù)據(jù)庫問題的解決方法
asp.net程序編寫完成后,發(fā)布到IIS,經(jīng)常出現(xiàn)的一個(gè)問題是連接不上Oracle數(shù)據(jù)庫,具體表現(xiàn)為Oracle的本地NET服務(wù)配置成功;用pl/sql 等工具也可以連接上數(shù)據(jù)庫,但是通過瀏覽器中運(yùn)行程序,就是報(bào)連接不上數(shù)據(jù)庫的錯(cuò)誤。這時(shí)可以嘗試下面的解決方法:
1 在oracle安裝目錄(d:"oracle"ora92)上右鍵,屬性->安全,選中Authenticated Users將權(quán)限的讀取和運(yùn)行項(xiàng)的勾去掉,再打上,然后點(diǎn)擊應(yīng)用,再點(diǎn)擊高級(jí),選中“用在此顯示的可以應(yīng)用到子對(duì)象的項(xiàng)目替代子對(duì)象的權(quán)限項(xiàng)目”,點(diǎn)擊確定,然后重新啟動(dòng)機(jī)器 。這時(shí)一般可以解決問題,如果不能解決問題,則嘗試第2步和第3步。
2 把用戶Aspnet和Internet 來賓用戶IUSR_COMPUTERNAME加入Ora92的安全權(quán)限里。
3 在ISS中選擇“應(yīng)用程序池”,選中你的應(yīng)用程序所屬的應(yīng)用程序池,右鍵屬性,點(diǎn)“標(biāo)識(shí)”標(biāo)簽,在預(yù)定義帳戶項(xiàng)選“本地系統(tǒng)”,然后重啟ISS。
到此這篇關(guān)于ORA-12154:TNS:無法解析指定的連接標(biāo)識(shí)符的文章就介紹到這了,更多相關(guān)ORA-12154無法解析指定的連接標(biāo)識(shí)符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle表空間數(shù)據(jù)文件移動(dòng)的方法
最近接了個(gè)項(xiàng)目,遇到這樣的問題,需要實(shí)現(xiàn)把用戶表空間中的數(shù)據(jù)文件從某一個(gè)路徑下移動(dòng)到另一個(gè)路徑下,實(shí)現(xiàn)過程說簡單不簡單,說復(fù)雜不復(fù)雜,下面小編給大家分享我的解決辦法,對(duì)oracle表空間數(shù)據(jù)文件相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12Oracle存儲(chǔ)過程、包、方法使用總結(jié)(推薦)
這篇文章主要介紹了Oracle存儲(chǔ)過程、包、方法使用總結(jié)(推薦),需要的朋友可以參考下2017-05-05如何使用GDAL庫的ogr2ogr將GeoJSON數(shù)據(jù)導(dǎo)入到PostgreSql中
本文主要介紹了PyTorch中的masked_fill函數(shù)的基本知識(shí)和使用方法,masked_fill函數(shù)接受一個(gè)輸入張量和一個(gè)布爾掩碼作為主要參數(shù),掩碼的形狀必須與輸入張量相同,掩碼操作根據(jù)掩碼中的布爾值在輸出張量中填充指定的值或保留輸入張量中的值2024-10-10解決Oracle?查詢時(shí)報(bào)錯(cuò)ORA-00923:?FROM?keyword?not?found?where?
這篇文章主要介紹了解決Oracle?查詢時(shí)報(bào)錯(cuò)ORA-00923:?FROM?keyword?not?found?where?expected的問題,主要給大家介紹可能發(fā)生報(bào)錯(cuò)的幾種情況,感興趣的朋友跟隨小編一起看看吧2023-03-03