2015-09-29 117 views
0

我下載了Oracle數據庫oracle-xe-11.2.0-1.0.x86_64.rpm。安裝後,我將默認密碼設置爲passwordRHEL6無法連接到本地oracle db

然後我下載並安裝instantclient-basicinstantclient-sqlplus。 我~/.bash_profile路徑:

ORACLE_HOME=/usr/lib/oracle/11.2/client64 
PATH=$ORACLE_HOME/bin:$PATH 
LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export ORACLE_HOME 
export LD_LIBRARY_PATH 
export PATH 

然後我試圖從SQLPLUS作爲登錄:sqlplus system,並輸入密碼password。它給了我錯誤ORA-12162: TNS:net service name is incorrectly specified

我在網上查了一下,似乎如果我做了這些步驟,它應該工作。

類似的問題鏈接:https://access.redhat.com/solutions/281843

+0

使用lsnrctl 啓動偵聽器start – Satya

回答

1

你需要設置你的ORACLE_SID環境變量,以配合您安裝了數據庫/創建。 This is mentioned in the documentation。如果沒有一套:

$ echo $ORACLE_SID 

$ sqlplus -s -l x/y 
ERROR: 
ORA-12162: TNS:net service name is incorrectly specified 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

設置完後:

$ export ORACLE_SID=XE 
$ ./sqlplus -s -l x/y 
ERROR: 
ORA-01017: invalid username/password; login denied 


SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus 

凡ORA-01017是因爲我使用了假證件,但你可以看到它在談論到數據庫中,現在來驗證這些。

您可以在.bash_profile中設置ORACLE_SID以及其他環境變量。

您也可以通過SQL * Net進行連接,但不設置$ORACLE_SID或覆蓋它。如果你的聽衆正在運行(lsnrctl status檢查),您可以使用您的tnsnames.ora文件中定義的別名,它通常會匹配SID:

$ sqlplus x/[email protected] 

或沒有文件,你可以使用easy connect語法:

$ sqlplus x/[email protected]//localhost:1521/XE 

它採用偵聽器實際正在偵聽的主機名/ IP地址和端口(也可以從lsnrctl status獲取)和數據庫實例的服務名稱 - 通常也與SID相同或相似,我認爲你的情況將會是XE。

您可以read more in the documentation

順便說一下,您似乎正在根據您的$PATH設置獲取完整客戶端,而不是即時客戶端,因此您可能無需單獨下載。

+0

謝謝。我知道這個問題似乎很愚蠢。我的安裝方法是否正確?我的同事使用這種方法安裝在centos中。但其他一些文章使用磁盤安裝或從http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index-092322.html下載軟件包 – SnowWolf

+0

如果您已經遵循XE安裝文檔,那麼它應該沒問題 - 你還沒有說過你做過什麼奇怪的事情。安裝即時客戶端也可能有點多餘。但是,如果創建正確,並且您已配置並運行偵聽器,則可以使用客戶端(或其他人,如SQL Developer)訪問數據庫。 –